teorema
Ist gelegentlich hier
- Registriert
- 30. August 2009
- Beiträge
- 83
- Reaktionspunkte
- 26
- Punkte
- 38
Hallo zusammen,
ich habe ein Script gebastelt dass in der IPTV Kanalliste das EPG "einfügt". Nun bin ich aber an meine Grenzen gestoßen und möchte es gerne mit denen teilen die sich auskennen und weiterentwickenl wollen/können.
Um das Script im jetztigen zustand zum laufen zu bringen, ist ein wenig vorarbeit nötig.
1.) Pluigin "CrossEPG" auf die STB installieren und alle EPG's downloaden (oder die die man braucht).
2.) Eine möglichst komplette lamedb mit der vorhandenen ersetzen (z.B. aus den Settings von Vhannibal).
3.) Nun das Script ausführen...
Nun kommen wir zu den Problemen:
1.) Es werden nur Marker erkannt die zwichen "-===" und "===-" stehen. Ist aber mit einer simplen Variable zu lösen.
!!!WICHTIG!!!--->2.) Wenn Sender in der IPTV Liste nicht wie in der lamedb geschrieben sind, dann werden sie nicht erkannt.
Da ich keine Dateien hochladen darf, muss ich das Script in einen Spoiler setzen.
Über feedback würde ich mich freuen.
Ein Danke tut nicht weh.
ich habe ein Script gebastelt dass in der IPTV Kanalliste das EPG "einfügt". Nun bin ich aber an meine Grenzen gestoßen und möchte es gerne mit denen teilen die sich auskennen und weiterentwickenl wollen/können.
Um das Script im jetztigen zustand zum laufen zu bringen, ist ein wenig vorarbeit nötig.
1.) Pluigin "CrossEPG" auf die STB installieren und alle EPG's downloaden (oder die die man braucht).
2.) Eine möglichst komplette lamedb mit der vorhandenen ersetzen (z.B. aus den Settings von Vhannibal).
3.) Nun das Script ausführen...
Nun kommen wir zu den Problemen:
1.) Es werden nur Marker erkannt die zwichen "-===" und "===-" stehen. Ist aber mit einer simplen Variable zu lösen.
!!!WICHTIG!!!--->2.) Wenn Sender in der IPTV Liste nicht wie in der lamedb geschrieben sind, dann werden sie nicht erkannt.
Da ich keine Dateien hochladen darf, muss ich das Script in einen Spoiler setzen.
Code:
#!/bin/bash
IPTV_BOUQUET_NAME="userbouquet.IPTV_IpTv.tv" #Namen der Bouquet Datei einsetzen
ZEILENDATEI=`sed $= -n /etc/enigma2/${IPTV_BOUQUET_NAME}` #Anzahl der Zeilen in Bouquet
ZEILENDATEIB=`sed $= -n /etc/enigma2/lamedb` #Anzahl der Zeilen in lamedb
LINECOUNT=1 #Zeile zum lesen im Bouquet auf 1 setzen
MARKER=0 #Markercounter
sed -i 's/\r//g' /etc/enigma2/${IPTV_BOUQUET_NAME}
for MARKER_LINE in `grep -n '#DESCRIPTION [^A-Za-z0-9].*[A-Za-z0-9].*[^A-Za-z0-9].*' /etc/enigma2/${IPTV_BOUQUET_NAME} | cut -d : -f 1`; do
FUND_BOUQUET=`sed -n "${MARKER_LINE}p" /etc/enigma2/${IPTV_BOUQUET_NAME} | sed s'/#DESCRIPTION *//g'` #Markername
echo -e "Marker gefunden: \033[1;32m ${FUND_BOUQUET} \033[0m"
FUNDZEILEBOUQUET=`expr ${MARKER_LINE} - 1` #Auf Zeile mit Senderdaten setzen in Bouquet
BOUQUETDATEN=`cat /etc/enigma2/${IPTV_BOUQUET_NAME} | sed -n "${FUNDZEILEBOUQUET}"p`
echo ${BOUQUETDATEN} | sed -i "${FUNDZEILEBOUQUET}s/ '.*:.*:.*:.*:.*:.*:.*:.*:.*:.*:'/ 1:64:${MARKER}:0:0:0:0:0:0:0:/g" /etc/enigma2/${IPTV_BOUQUET_NAME}
MARKER=`expr ${MARKER} + 1`
done
echo ""
echo "Marker umgewandelt."
echo ""
for KANAL_LINE in `grep -n '#DESCRIPTION [A-Za-z].*' /etc/enigma2/${IPTV_BOUQUET_NAME} | cut -d : -f 1`; do
KANAL=`sed -n "${KANAL_LINE}p" /etc/enigma2/${IPTV_BOUQUET_NAME} | sed s'/#DESCRIPTION *//g'` #Sendername rauslesen
FUND_LAMEDB=`grep -nm 1 "^${KANAL}$" /etc/enigma2/lamedb | sed 's/\:.*//g'` #Sendername in lamedb suchen
if [ "$FUND_LAMEDB" != "" ]; then #Wenn gefunden...
echo -e "Kanal gefunden \033[1;32m ${KANAL} \033[0m"
FUNDZEILEBOUQUET=`expr ${KANAL_LINE} - 1` #Auf Zeile mit Senderdaten setzen in Bouquet
BOUQUETDATEN=`cat /etc/enigma2/${IPTV_BOUQUET_NAME} | sed -n "${FUNDZEILEBOUQUET}"p`
FUNDZEILELAMEDB=`expr ${FUND_LAMEDB} - 1` #Auf Zeile mit Senderdaten setzen in lamedb
LAMEDBLINE=`cat /etc/enigma2/lamedb | sed -n "${FUNDZEILELAMEDB}"p` #Daten aus lamedb lesen und splitten
STK1=`echo $LAMEDBLINE | cut -d\: -f1 | sed 's/^0*//g'`
STK2=`echo $LAMEDBLINE | cut -d\: -f2 | sed 's/^0*//g'`
STK3=`echo $LAMEDBLINE | cut -d\: -f3 | sed 's/^0*//g'`
STK4=`echo $LAMEDBLINE | cut -d\: -f4 | sed 's/^0*//g'`
STK5=`echo $LAMEDBLINE | cut -d\: -f5 | sed 's/^0*//g'`
STK51=`printf '%x\n' $STK5` #In HEX umwandeln
RAS=`echo " 1:0:$STK51:$STK1:$STK3:$STK4:$STK2:0:0:0:"` #Splits ordnen
SUBZEILE=`echo $BOUQUETDATEN | sed -i "${FUNDZEILEBOUQUET}s/ '.*:.*:.*:.*:.*:.*:.*:.*:.*:.*:'/${RAS}/g" /etc/enigma2/${IPTV_BOUQUET_NAME}` #In Bouquet schreiben
else
echo -e "Kanal feht \033[1;31m ${KANAL} \033[0m"
fi
done
wget -qO - "http://127.0.0.1/web/servicelistreload?mode=2" >> /dev/null 2>&1
echo "Fertig"
Über feedback würde ich mich freuen.
Ein Danke tut nicht weh.
Zuletzt bearbeitet: