#!/bin/sh # EPG Daten ausfiltern # by PauleFoul select=$1 Myself="EPGFilter - EPG Daten ausfiltern" Version="V003" Headline="${Myself} - - - ${Version}" echo $Myself $Version $select #Daten aus der Service.xml auslesen und filtern services_data () { #Zeilen (hier die t="2" enthalten) in services.xml suchen und kopieren grep -E "$1" /var/tuxbox/config/zapit/services.xml > /tmp/epgtmp1.xml #Text loeschen und umwandeln sed -e 's/<S //' -e 's/ t=".*>//g' -e 's/v=".*"//g' -e 's/*//' -e 's/^[ \t]*//' -e '/^\s*$/d' -e 's/i="//' -e 's/^0*//' -e 's/^/"/' -e 's/n="/name="/' /tmp/epgtmp1.xml | sort -u > /tmp/epgtmp3.xml #Text die ersten 10 Zeichen abschneiden #cut -c 10- "/tmp/epgtmp2.xml" > "/tmp/epgtmp3.xml" } bouquets_data () { #Zeilen (hier die <S i=" enthalten) in bouquets.xml suchen und kopieren grep '<S i="' $1 > /tmp/epgtmp4.xml #Format der Serviceparameter anpassen ( aus i wird z.B. serviceID) sed -e 's/.s=".*"//g' -e 's/.frq=".*"//g' -e 's/<S/<filter/' -e 's/i="/serviceID="/' -e 's/n="/name="/' -e 's/t="/tsid="/' -e 's/on="/onid="/' -e 's/^[ \t]*//' /tmp/epgtmp4.xml | sort -u > /tmp/epgtmp5.xml } sender_suchen () { #Zeilen/Senderanzahl ermitteln zeilen=`sed -n -e "$=" /tmp/epgtmp3.xml` #zeilen=$(expr $zeilen - 1) tab1=1; step=1 Anzeigetext="~c Senderliste erstellen..."; msga while [ "$tab1" -le "$zeilen" ]; do a1=`sed -n -e "$tab1"p /tmp/epgtmp3.xml` a2=`grep -e "$a1" /tmp/epgtmp5.xml` echo -e "$a2" >> /tmp/epgtmp6.xml tab1=`expr "$tab1" + $step` done } kopfzeile () { #Dateikopf schreiben echo '<?xml version="1.0" encoding="UTF-8"?>' >> /tmp/epgtmp6.xml echo "<epgfilter is_whitelist=$1 except_current_next=$2>" >> /tmp/epgtmp6.xml } rm /tmp/epgtmp*.xml case $select in # 1) #EPG nur TV (Alle) services_data 't="1"|t="19"|t="d3' bouquets_data /var/tuxbox/config/zapit/bouquets.xml kopfzeile '"0"' '"0"' sender_suchen sleep 1;; 2) #EPG nur Radio (Alle) services_data 't="2"' bouquets_data /var/tuxbox/config/zapit/bouquets.xml kopfzeile '"1"' '"0"' sender_suchen sleep 1;; 3) #EPG nur TV (Alle) + Now&Next services_data 't="1"|t="19"|t="d3' bouquets_data /var/tuxbox/config/zapit/bouquets.xml kopfzeile '"0"' '"1"' sender_suchen sleep 1;; 4) #EPG nur Radio (Alle) + Now&Next services_data 't="2"' bouquets_data /var/tuxbox/config/zapit/bouquets.xml kopfzeile '"1"' '"1"' sender_suchen sleep 1;; 5) #EPG nur TV&Radio (Favoriten) bouquets_data /var/tuxbox/config/zapit/ubouquets.xml kopfzeile '"1"' '"0"' cat /tmp/epgtmp5.xml >> /tmp/epgtmp6.xml sleep 1;; 6) #EPG nur TV&Radio (Favoriten) + Now&Next bouquets_data /var/tuxbox/config/zapit/ubouquets.xml kopfzeile '"1"' '"1"' cat /tmp/epgtmp5.xml >> /tmp/epgtmp6.xml sleep 1;; 7) #EPG nur TV (Favoriten) services_data 't="1"|t="19"|t="d3"' bouquets_data /var/tuxbox/config/zapit/ubouquets.xml kopfzeile '"1"' '"0"' sender_suchen sleep 1;; 8) #EPG nur TV (Favoriten) + Now&Next services_data 't="1"|t="19"|t="d3"' bouquets_data /var/tuxbox/config/zapit/ubouquets.xml kopfzeile '"1"' '"1"' sender_suchen sleep 1;; *) #Keine Auswahl exit;; esac #Sortieren und doppelte Eintraege loeschen cat /tmp/epgtmp6.xml | sort -u > /tmp/epgtmp7.xml #Dateiende schreiben echo '</epgfilter>' >> /tmp/epgtmp7.xml sed -e 's/<filter/\t<filter/' -e '/^\s*$/d' /tmp/epgtmp7.xml > /tmp/epgtmp8.xml cp /tmp/epgtmp8.xml /var/tuxbox/config/zapit/epgfilter.xml rm /tmp/epgtmp*.xml exit #########################################################################################