Besoin d'aide pour interpreter un script pour E2 et IPTV

voilko

DZSatien Curieux
Inscrit
17/2/12
Messages
43
Salut tout le monde,
je cherche un moyen d'automatiser la modification des SID présent dans un fichier "userbouquet.IPTV_IpTv.tv" afin que les chaines soit reconnues par EPG import,
Exemple modifier cette ligne

Code:
#DESCRIPTION TF1 HD
#SERVICE 4097:0:1:0:0:0:0:0:0:0:http%3a//host.XXXX.com%3a10000/live/Host1userxxxxx.ts:TF1

par ça

Code:
#DESCRIPTION TF1 HD
#SERVICE 4097:0:19:2329:442:1:C00000:0:0:0:http%3a//host.XXXX.com%3a10000/live/Host1userxxxxx.ts:TF1

et là l'EPG fonctionne sauf que d’après d'apres ce que j'ai compris il faut le faire manuellement sur chaque chaines vu le nombre de chaines c'est vite décourageant

Puis j'ai trouvé sur un forum allemand un script réalisé par "teorema" qui semble remplir cette fonction sauf que moi et l'allemand ça fais déjà 2 et si j'ajoute en plus le bash ça fais 3 :g:g

si j'ai bien compris il utilise le fichier userbouquet-iptv.tv puis dois aller récuperer les SID dans le fichier lamedb pour les réécrire dans le fichier userbouquet-iptv.tv


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"

le script se lance bien il me reconnait quelque chaines puisqu'il les met bien en vert par contre il ne modifie pas les SID sur le fichier userbouquet.IPTV_IpTv.tv

telnet.JPG

Voilà donc j'ai besoin de vos lumières pour interpréter ce script merci d'avance pour votre aide
 
Retour
Haut