teorema
Ist gelegentlich hier
- Registriert
- 30. August 2009
- Beiträge
- 83
- Reaktionspunkte
- 26
- Punkte
- 38
Vorweg, mit "Update" meine ich dass das Script von euch jederzeit und ohne am Reciver selbst zu sein, ändern könnt.
Ich stelle mal einen meiner Scripte bereit.
Dieses Script habe ich in 3 Varianten geschrieben.
1.) Kombination aus PHP und Shell (Update möglich)
2.) Kombination aus einem lokalen und einem Server Shell Script (Update möglich)
3.) Ein Script das auf die Box geladen wird (Update nicht möglich)
Dieses PHP Script auf den Server !!! Änderungen beachten !!!
Dieses Script muss auch auf den Server. Hier braucht man nichts zu ändern.
In diesem Code muss das rot markierte geendert werden!
PS.: Das BQ in der URL steht dafür, um eurer IPTV Programmliste einen Namen zu geben z.B. IPTV
Nun Braucht man im Terminal nur eingeben...
Dieses Script auf die Box in den Path /usr/script/iptv.sh !!! Änderungen beachten !!!
Und nicht vergessen die Rechte auf 755 zu setzen.
Dieses Script muss auch auf den Server. Hier braucht man nichts zu ändern.
Nun Braucht man im Terminal nur eingeben...
Dieses Script auf die Box in den Path /usr/script/iptv.sh !!! Änderungen beachten !!!
Und nicht vergessen die Rechte auf 755 zu setzen.
Nun Braucht man im Terminal nur eingeben...
Ich hoffe das es soweit verständlich ist.
Grüße Teorema
Ich stelle mal einen meiner Scripte bereit.
Dieses Script habe ich in 3 Varianten geschrieben.
1.) Kombination aus PHP und Shell (Update möglich)
- Nach eingabe von wenigen Komandos (die den meisten schon bekannt sein sollten), wird automatisch ein Scripts in der Box angelegt, dass das eigentliche Script vom Server abruft und ausführt.
2.) Kombination aus einem lokalen und einem Server Shell Script (Update möglich)
- Genau wie 1. nur dass das Script was mit dem PHP Script erstellt werden würde, direckt auf der Box hinterlegt wird und manuel die Variablen bearbeitet werden.
3.) Ein Script das auf die Box geladen wird (Update nicht möglich)
1.) Kombination aus PHP und Shell (Update möglich)
- Nach eingabe von wenigen Komandos (die den meisten schon bekannt sein sollten), wird automatisch ein Scripts in der Box angelegt, dass das eigentliche Script vom Server abruft und ausführt.
Dieses PHP Script auf den Server !!! Änderungen beachten !!!
Code:
<?php
if ((empty($_GET["UN"]))) {
echo "Benutzername fehlt! <br />\n"; }
else {
$USERNAME = $_GET["UN"]; }
if ((empty($_GET["PW"]))) {
echo "Passwort fehlt! <br />\n"; }
else {
$PASSWORD = $_GET["PW"]; }
if ((empty($_GET["BQ"]))) {
$BOUQUET = "IPTV"; }
else {
$BOUQUET = $_GET["BQ"]; }
?>
<?php
if ((!empty($_GET["UN"])) && (!empty($_GET["PW"]))) {
echo '#!/bin/sh
USERNAME=".'$USERNAME'."
PASSWORD=".'$PASSWORD'."
BOUQUET=".'$BOUQUET'."
URL="[COLOR=#ff0000]http://eure-url.de:1234/get.php...........[/COLOR]" [COLOR=#ff0000]#<--- Ändern [/COLOR]
###System Variablen###
SPATH=`dirname $0` #Path Name
SNAME=`basename $0` #Script Name
SURL="[COLOR=#ff0000]http://eure-url-zum-script.de[/COLOR]/iptvexec.sh" [COLOR=#ff0000]#<--- URL zum script[/COLOR]
echo "[+] Script Download"
wget -qO /tmp/iptvexec.sh ${SURL} > /dev/null
if [ -n /tmp/iptvexec.sh ]; then
chmod 755 /tmp/iptvexec.sh
export USERNAME PASSWORD BOUQUET URL SPATH SNAME
cd /tmp/
./iptvexec.sh
else
echo "[!] FEHLER: Download nicht moeglich"
echo "Abbruch!"
exit 1
fi';
} else {
echo 'Daten Fehlen'; }
Dieses Script muss auch auf den Server. Hier braucht man nichts zu ändern.
Code:
#Check ob iptv.sh im richtigen Ordner ist
if [ "${SPATH}" != "/usr/script" ]; then #Wenn Path nicht = /usr/script dann verschieben
echo "[+] Script wird verschoben nach /usr/script/"
if [ -d /usr/script ]; then #Verzeiches exsistiert
mv ${SPATH}/${SNAME} /usr/script/${SNAME}
if [ -n /usr/script/${SNAME} ]; then #Script wurde verschoben
echo "[+] Script wurde verschoben."
else
echo "[-] Script konnte nicht verschoben werden."
echo "[-] Weiter mit Fehler..."
fi
else
mkdir /usr/script
mv ${SPATH}/${SNAME} /usr/script/${SNAME}
if [ -n /usr/script/${SNAME} ]; then #Script wurde verschoben
echo "[+] Script wurde verschoben."
else
echo "[-] Script konnte nicht verschoben werden."
echo "[-] Weiter mit Fehler..."
fi
fi
fi
#Check ob Crontab vorhanden sonst neuen Crontab erstellen
cd /tmp/
crontab -l >> /tmp/crontmp
CRON_EXIST=`grep "0 0 \* \* \* /usr/script/${SNAME}" /tmp/crontmp`
if [ -z "${CRON_EXIST}" ]; then
echo "[+] Crontab nicht vorhanden und wird erstellt."
echo "0 0 * * * /usr/script/${SNAME}" >> /tmp/crontmp
sed -e '/^\s*$/d' /tmp/crontmp > /tmp/cronnew
crontab cronnew
rm /tmp/crontmp
rm /tmp/cronnew
crontab -l >> /tmp/crontmp
CRON_EXIST=`grep "0 0 \* \* \* /usr/script/${SNAME}" /tmp/crontmp`
if [ -z "${CRON_EXIST}" ]; then
echo "[-] Crontab konnte nicht erstellt werden!"
echo "[-] Weiter mit Fehler..."
rm /tmp/crontmp
else
echo "[+] Crontab wurde erstellt."
rm /tmp/crontmp
fi
else
rm /tmp/crontmp
fi
#Download vom IPTV Bouquet in den tmp Ordner
echo "[+] Lade neues IPTV Bouquet runter."
wget -qO /tmp/userbouquet."${BOUQUET}"_IpTv.tv ${URL} > /dev/null
#Check ob Download OK
if [ -s "/tmp/userbouquet."${BOUQUET}"_IpTv.tv" ]; then
echo "[+] Download OK."
sed -i 's/#NAME .*/#NAME '${BOUQUET}'/g' /tmp/userbouquet."${BOUQUET}"_IpTv.tv
EXIST_IN_UB=`grep "userbouquet.${BOUQUET}_IpTv.tv" /etc/enigma2/bouquets.tv`
if [ -s "/etc/enigma2/userbouquet.${BOUQUET}_IpTv.tv" ] && [ -n "$EXIST_IN_UB" ]; then
FILE_DIFFP=`diff -b /etc/enigma2/userbouquet.${BOUQUET}_IpTv.tv /tmp/userbouquet.${BOUQUET}_IpTv.tv | grep "\+\#DESCRIPTION"`
FILE_DIFFM=`diff -b /etc/enigma2/userbouquet.${BOUQUET}_IpTv.tv /tmp/userbouquet.${BOUQUET}_IpTv.tv | grep "\-\#DESCRIPTION"`
if [ -n "${FILE_DIFFM}" ] || [ -n "${FILE_DIFFP}" ]; then
if [ -n "${FILE_DIFFM}" ]; then
echo ""
echo "[?] Weggefallen:"
echo "${FILE_DIFFM}"
echo ""
fi
if [ -n "${FILE_DIFFP}" ]; then
echo ""
echo "[?] Hinzu gekommen:"
echo "${FILE_DIFFP}"
echo ""
fi
else
echo "[?] Keine neuen Sender."
echo "[+] Fertig."
rm /tmp/userbouquet.${BOUQUET}_IpTv.tv
rm /tmp/iptvexec.sh
exit 0;
fi
fi
#Check ob altes IPTV Bouquet vorhanden
if [ -e "/etc/enigma2/userbouquet."${BOUQUET}"_IpTv.tv" ]; then
echo "[+] Loesche altes IPTV Bouquet."
rm /etc/enigma2/userbouquet."${BOUQUET}"_IpTv.tv
fi
mv /tmp/userbouquet."${BOUQUET}"_IpTv.tv /etc/enigma2/userbouquet."${BOUQUET}"_IpTv.tv
else
echo "[!] Download Fehler abbruch!"
echo "[!] Internet verbindung pruefen!"
exit 1
fi
#Erstelle neues Bouquet (IPTV Bouquet an Stelle 2)
if ! cat /etc/enigma2/bouquets.tv | grep -c ${BOUQUET} > /dev/null; then
cat /etc/enigma2/bouquets.tv | sed -n 1,2p > /etc/enigma2/new_bouquets.tv
echo '#SERVICE 1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "userbouquet.'${BOUQUET}'_IpTv.tv" ORDER BY bouquet' >> /etc/enigma2/new_bouquets.tv
cat /etc/enigma2/bouquets.tv | sed -n '3,$p' >> /etc/enigma2/new_bouquets.tv
rm /etc/enigma2/bouquets.tv
echo "[+] Loesche alte Bouquetdatei"
mv /etc/enigma2/new_bouquets.tv /etc/enigma2/bouquets.tv
echo "[+] Lege nun die neue Bouquetdatei an"
fi
#Marker umwandeln
echo "[+] Wandel Marker um"
MARKER="0" #Markercounter
for MARKER_LINE in `grep -n '#DESCRIPTION [^A-Za-z0-9].*[A-Za-z0-9].*[^A-Za-z0-9].*' /etc/enigma2/userbouquet.${BOUQUET}_IpTv.tv | cut -d : -f 1`; do
FUNDZEILEBOUQUET=`expr ${MARKER_LINE} - 1` #Auf Zeile mit Senderdaten setzen in Bouquet
BOUQUETDATEN=`cat /etc/enigma2/userbouquet."${BOUQUET}"_IpTv.tv | sed -n "${FUNDZEILEBOUQUET}"p`
echo ${BOUQUETDATEN} | sed -i "${FUNDZEILEBOUQUET}s/ .*:.*:.*:.*:.*:.*:.*:.*:.*:.*:/ 1:64:${MARKER}:0:0:0:0:0:0:0:/g" /etc/enigma2/userbouquet."${BOUQUET}"_IpTv.tv
MARKER=`expr ${MARKER} + 1`
done
echo "[+] Lade Bouquet neu"
wget -qO - "http://127.0.0.1/web/servicelistreload?mode=2" >> /tmp/wget_status
WGET_STATUS=`grep "<e2state>True</e2state>" /tmp/wget_status`
if [ -z "${WGET_STATUS}" ]; then
echo "[-] Bouquet konnte nich neu geladen werden."
echo "[-] Reciver von Hand neu starten."
echo "[-] Weiter mit Fehler"
rm /tmp/wget_status
else
echo "[+] Bouquet wurde neu geladen."
rm /tmp/wget_status
fi
rm /tmp/iptvexec.sh
rm /tmp/userbouquet.${BOUQUET}_IpTv.tv
echo "[+] Fertig"
exit 0;
In diesem Code muss das rot markierte geendert werden!
PS.: Das BQ in der URL steht dafür, um eurer IPTV Programmliste einen Namen zu geben z.B. IPTV
Nun Braucht man im Terminal nur eingeben...
Code:
wget -O /tmp/iptv.sh "http://[COLOR=#ff0000]eure-url-zum-php-script[/COLOR]/iptv.php?UN=[COLOR=#ff0000]euerUsername[/COLOR]&PW=[COLOR=#ff0000]euerPassword[/COLOR]&BQ=[COLOR=#ff0000]irgendwas[/COLOR]" && chmod 755 /tmp/iptv.sh && /tmp/iptv.sh
2.) Kombination aus einem lokalen und einem Server Shell Script (Update möglich)
- Genau wie 1. nur dass das Script was mit dem PHP Script erstellt werden würde, direckt auf der Box hinterlegt wird und manuel die Variablen bearbeitet werden.
Dieses Script auf die Box in den Path /usr/script/iptv.sh !!! Änderungen beachten !!!
Und nicht vergessen die Rechte auf 755 zu setzen.
Code:
#!/bin/sh
USERNAME="[COLOR=#ff0000]euerUsername[/COLOR]" [COLOR=#ff0000]#<--- Username einttragen[/COLOR]
PASSWORD="[COLOR=#ff0000]euerPassword[/COLOR]" [COLOR=#ff0000]#<--- Password eintragen[/COLOR]
BOUQUET="[COLOR=#ff0000]euerBouquetName[/COLOR]" [COLOR=#ff0000]#<--- Bouquetname eintragen[/COLOR]
URL="[COLOR=#ff0000]http://eure-url.de:1234/get.php...........[/COLOR]" [COLOR=#ff0000]#<--- Ändern [/COLOR]
###System Variablen###
SPATH=`dirname $0` #Path Name
SNAME=`basename $0` #Script Name
SURL="[COLOR=#ff0000]http://eure-url-zum-script.de[/COLOR]/iptvexec.sh" [COLOR=#ff0000]#<--- URL zum script[/COLOR]
echo "[+] Script Download"
wget -qO /tmp/iptvexec.sh ${SURL} > /dev/null
if [ -n /tmp/iptvexec.sh ]; then
chmod 755 /tmp/iptvexec.sh
export USERNAME PASSWORD BOUQUET URL SPATH SNAME
cd /tmp/
./iptvexec.sh
else
echo "[!] FEHLER: Download nicht moeglich"
echo "Abbruch!"
exit 1
fi
Dieses Script muss auch auf den Server. Hier braucht man nichts zu ändern.
Code:
#Check ob iptv.sh im richtigen Ordner ist
if [ "${SPATH}" != "/usr/script" ]; then #Wenn Path nicht = /usr/script dann verschieben
echo "[+] Script wird verschoben nach /usr/script/"
if [ -d /usr/script ]; then #Verzeiches exsistiert
mv ${SPATH}/${SNAME} /usr/script/${SNAME}
if [ -n /usr/script/${SNAME} ]; then #Script wurde verschoben
echo "[+] Script wurde verschoben."
else
echo "[-] Script konnte nicht verschoben werden."
echo "[-] Weiter mit Fehler..."
fi
else
mkdir /usr/script
mv ${SPATH}/${SNAME} /usr/script/${SNAME}
if [ -n /usr/script/${SNAME} ]; then #Script wurde verschoben
echo "[+] Script wurde verschoben."
else
echo "[-] Script konnte nicht verschoben werden."
echo "[-] Weiter mit Fehler..."
fi
fi
fi
#Check ob Crontab vorhanden sonst neuen Crontab erstellen
cd /tmp/
crontab -l >> /tmp/crontmp
CRON_EXIST=`grep "0 0 \* \* \* /usr/script/${SNAME}" /tmp/crontmp`
if [ -z "${CRON_EXIST}" ]; then
echo "[+] Crontab nicht vorhanden und wird erstellt."
echo "0 0 * * * /usr/script/${SNAME}" >> /tmp/crontmp
sed -e '/^\s*$/d' /tmp/crontmp > /tmp/cronnew
crontab cronnew
rm /tmp/crontmp
rm /tmp/cronnew
crontab -l >> /tmp/crontmp
CRON_EXIST=`grep "0 0 \* \* \* /usr/script/${SNAME}" /tmp/crontmp`
if [ -z "${CRON_EXIST}" ]; then
echo "[-] Crontab konnte nicht erstellt werden!"
echo "[-] Weiter mit Fehler..."
rm /tmp/crontmp
else
echo "[+] Crontab wurde erstellt."
rm /tmp/crontmp
fi
else
rm /tmp/crontmp
fi
#Download vom IPTV Bouquet in den tmp Ordner
echo "[+] Lade neues IPTV Bouquet runter."
wget -qO /tmp/userbouquet."${BOUQUET}"_IpTv.tv ${URL} > /dev/null
#Check ob Download OK
if [ -s "/tmp/userbouquet."${BOUQUET}"_IpTv.tv" ]; then
echo "[+] Download OK."
sed -i 's/#NAME .*/#NAME '${BOUQUET}'/g' /tmp/userbouquet."${BOUQUET}"_IpTv.tv
EXIST_IN_UB=`grep "userbouquet.${BOUQUET}_IpTv.tv" /etc/enigma2/bouquets.tv`
if [ -s "/etc/enigma2/userbouquet.${BOUQUET}_IpTv.tv" ] && [ -n "$EXIST_IN_UB" ]; then
FILE_DIFFP=`diff -b /etc/enigma2/userbouquet.${BOUQUET}_IpTv.tv /tmp/userbouquet.${BOUQUET}_IpTv.tv | grep "\+\#DESCRIPTION"`
FILE_DIFFM=`diff -b /etc/enigma2/userbouquet.${BOUQUET}_IpTv.tv /tmp/userbouquet.${BOUQUET}_IpTv.tv | grep "\-\#DESCRIPTION"`
if [ -n "${FILE_DIFFM}" ] || [ -n "${FILE_DIFFP}" ]; then
if [ -n "${FILE_DIFFM}" ]; then
echo ""
echo "[?] Weggefallen:"
echo "${FILE_DIFFM}"
echo ""
fi
if [ -n "${FILE_DIFFP}" ]; then
echo ""
echo "[?] Hinzu gekommen:"
echo "${FILE_DIFFP}"
echo ""
fi
else
echo "[?] Keine neuen Sender."
echo "[+] Fertig."
rm /tmp/userbouquet.${BOUQUET}_IpTv.tv
rm /tmp/iptvexec.sh
exit 0;
fi
fi
#Check ob altes IPTV Bouquet vorhanden
if [ -e "/etc/enigma2/userbouquet."${BOUQUET}"_IpTv.tv" ]; then
echo "[+] Loesche altes IPTV Bouquet."
rm /etc/enigma2/userbouquet."${BOUQUET}"_IpTv.tv
fi
mv /tmp/userbouquet."${BOUQUET}"_IpTv.tv /etc/enigma2/userbouquet."${BOUQUET}"_IpTv.tv
else
echo "[!] Download Fehler abbruch!"
echo "[!] Internet verbindung pruefen!"
exit 1
fi
#Erstelle neues Bouquet (IPTV Bouquet an Stelle 2)
if ! cat /etc/enigma2/bouquets.tv | grep -c ${BOUQUET} > /dev/null; then
cat /etc/enigma2/bouquets.tv | sed -n 1,2p > /etc/enigma2/new_bouquets.tv
echo '#SERVICE 1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "userbouquet.'${BOUQUET}'_IpTv.tv" ORDER BY bouquet' >> /etc/enigma2/new_bouquets.tv
cat /etc/enigma2/bouquets.tv | sed -n '3,$p' >> /etc/enigma2/new_bouquets.tv
rm /etc/enigma2/bouquets.tv
echo "[+] Loesche alte Bouquetdatei"
mv /etc/enigma2/new_bouquets.tv /etc/enigma2/bouquets.tv
echo "[+] Lege nun die neue Bouquetdatei an"
fi
#Marker umwandeln
echo "[+] Wandel Marker um"
MARKER="0" #Markercounter
for MARKER_LINE in `grep -n '#DESCRIPTION [^A-Za-z0-9].*[A-Za-z0-9].*[^A-Za-z0-9].*' /etc/enigma2/userbouquet.${BOUQUET}_IpTv.tv | cut -d : -f 1`; do
FUNDZEILEBOUQUET=`expr ${MARKER_LINE} - 1` #Auf Zeile mit Senderdaten setzen in Bouquet
BOUQUETDATEN=`cat /etc/enigma2/userbouquet."${BOUQUET}"_IpTv.tv | sed -n "${FUNDZEILEBOUQUET}"p`
echo ${BOUQUETDATEN} | sed -i "${FUNDZEILEBOUQUET}s/ .*:.*:.*:.*:.*:.*:.*:.*:.*:.*:/ 1:64:${MARKER}:0:0:0:0:0:0:0:/g" /etc/enigma2/userbouquet."${BOUQUET}"_IpTv.tv
MARKER=`expr ${MARKER} + 1`
done
echo "[+] Lade Bouquet neu"
wget -qO - "http://127.0.0.1/web/servicelistreload?mode=2" >> /tmp/wget_status
WGET_STATUS=`grep "<e2state>True</e2state>" /tmp/wget_status`
if [ -z "${WGET_STATUS}" ]; then
echo "[-] Bouquet konnte nich neu geladen werden."
echo "[-] Reciver von Hand neu starten."
echo "[-] Weiter mit Fehler"
rm /tmp/wget_status
else
echo "[+] Bouquet wurde neu geladen."
rm /tmp/wget_status
fi
rm /tmp/iptvexec.sh
rm /tmp/userbouquet.${BOUQUET}_IpTv.tv
exit 0;
echo "[+] Fertig"
exit 0;
Nun Braucht man im Terminal nur eingeben...
Code:
/usr/script/iptv.sh
3.) Ein Script das auf die Box geladen wird (Update nicht möglich)
Dieses Script auf die Box in den Path /usr/script/iptv.sh !!! Änderungen beachten !!!
Und nicht vergessen die Rechte auf 755 zu setzen.
Code:
#!/bin/sh
USERNAME="[COLOR=#ff0000]euerUsername[/COLOR]" [COLOR=#ff0000]#<--- Username einttragen[/COLOR]
PASSWORD="[COLOR=#ff0000]euerPassword[/COLOR]" [COLOR=#ff0000]#<--- Password eintragen[/COLOR]
BOUQUET="[COLOR=#ff0000]euerBouquetName[/COLOR]" [COLOR=#ff0000]#<--- Bouquetname eintragen[/COLOR]
URL="[COLOR=#ff0000]http://eure-url.de:1234/get.php...........[/COLOR]" [COLOR=#ff0000]#<--- Ändern [/COLOR]
###System Variablen###
SPATH=`dirname $0` #Path Name
SNAME=`basename $0` #Script Name
#Check ob iptv.sh im richtigen Ordner ist
if [ "${SPATH}" != "/usr/script" ]; then #Wenn Path nicht = /usr/script dann verschieben
echo "[+] Script wird verschoben nach /usr/script/"
if [ -d /usr/script ]; then #Verzeiches exsistiert
mv ${SPATH}/${SNAME} /usr/script/${SNAME}
if [ -n /usr/script/${SNAME} ]; then #Script wurde verschoben
echo "[+] Script wurde verschoben."
else
echo "[-] Script konnte nicht verschoben werden."
echo "[-] Weiter mit Fehler..."
fi
else
mkdir /usr/script
mv ${SPATH}/${SNAME} /usr/script/${SNAME}
if [ -n /usr/script/${SNAME} ]; then #Script wurde verschoben
echo "[+] Script wurde verschoben."
else
echo "[-] Script konnte nicht verschoben werden."
echo "[-] Weiter mit Fehler..."
fi
fi
fi
#Check ob Crontab vorhanden sonst neuen Crontab erstellen
cd /tmp/
crontab -l >> /tmp/crontmp
CRON_EXIST=`grep "0 0 \* \* \* /usr/script/${SNAME}" /tmp/crontmp`
if [ -z "${CRON_EXIST}" ]; then
echo "[+] Crontab nicht vorhanden und wird erstellt."
echo "0 0 * * * /usr/script/${SNAME}" >> /tmp/crontmp
sed -e '/^\s*$/d' /tmp/crontmp > /tmp/cronnew
crontab cronnew
rm /tmp/crontmp
rm /tmp/cronnew
crontab -l >> /tmp/crontmp
CRON_EXIST=`grep "0 0 \* \* \* /usr/script/${SNAME}" /tmp/crontmp`
if [ -z "${CRON_EXIST}" ]; then
echo "[-] Crontab konnte nicht erstellt werden!"
echo "[-] Weiter mit Fehler..."
rm /tmp/crontmp
else
echo "[+] Crontab wurde erstellt."
rm /tmp/crontmp
fi
else
rm /tmp/crontmp
fi
#Download vom IPTV Bouquet in den tmp Ordner
echo "[+] Lade neues IPTV Bouquet runter."
wget -qO /tmp/userbouquet."${BOUQUET}"_IpTv.tv ${URL} > /dev/null
#Check ob Download OK
if [ -s "/tmp/userbouquet."${BOUQUET}"_IpTv.tv" ]; then
echo "[+] Download OK."
sed -i 's/#NAME .*/#NAME '${BOUQUET}'/g' /tmp/userbouquet."${BOUQUET}"_IpTv.tv
EXIST_IN_UB=`grep "userbouquet.${BOUQUET}_IpTv.tv" /etc/enigma2/bouquets.tv`
if [ -s "/etc/enigma2/userbouquet.${BOUQUET}_IpTv.tv" ] && [ -n "$EXIST_IN_UB" ]; then
FILE_DIFFP=`diff -b /etc/enigma2/userbouquet.${BOUQUET}_IpTv.tv /tmp/userbouquet.${BOUQUET}_IpTv.tv | grep "\+\#DESCRIPTION"`
FILE_DIFFM=`diff -b /etc/enigma2/userbouquet.${BOUQUET}_IpTv.tv /tmp/userbouquet.${BOUQUET}_IpTv.tv | grep "\-\#DESCRIPTION"`
if [ -n "${FILE_DIFFM}" ] || [ -n "${FILE_DIFFP}" ]; then
if [ -n "${FILE_DIFFM}" ]; then
echo ""
echo "[?] Weggefallen:"
echo "${FILE_DIFFM}"
echo ""
fi
if [ -n "${FILE_DIFFP}" ]; then
echo ""
echo "[?] Hinzu gekommen:"
echo "${FILE_DIFFP}"
echo ""
fi
else
echo "[?] Keine neuen Sender."
echo "[+] Fertig."
rm /tmp/userbouquet.${BOUQUET}_IpTv.tv
exit 0;
fi
fi
#Check ob altes IPTV Bouquet vorhanden
if [ -e "/etc/enigma2/userbouquet."${BOUQUET}"_IpTv.tv" ]; then
echo "[+] Loesche altes IPTV Bouquet."
rm /etc/enigma2/userbouquet."${BOUQUET}"_IpTv.tv
fi
mv /tmp/userbouquet."${BOUQUET}"_IpTv.tv /etc/enigma2/userbouquet."${BOUQUET}"_IpTv.tv
else
echo "[!] Download Fehler abbruch!"
echo "[!] Internet verbindung pruefen!"
exit 1
fi
#Erstelle neues Bouquet (IPTV Bouquet an Stelle 2)
if ! cat /etc/enigma2/bouquets.tv | grep -c ${BOUQUET} > /dev/null; then
cat /etc/enigma2/bouquets.tv | sed -n 1,2p > /etc/enigma2/new_bouquets.tv
echo '#SERVICE 1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "userbouquet.'${BOUQUET}'_IpTv.tv" ORDER BY bouquet' >> /etc/enigma2/new_bouquets.tv
cat /etc/enigma2/bouquets.tv | sed -n '3,$p' >> /etc/enigma2/new_bouquets.tv
rm /etc/enigma2/bouquets.tv
echo "[+] Loesche alte Bouquetdatei"
mv /etc/enigma2/new_bouquets.tv /etc/enigma2/bouquets.tv
echo "[+] Lege nun die neue Bouquetdatei an"
fi
#Marker umwandeln
echo "[+] Wandel Marker um"
MARKER="0" #Markercounter
for MARKER_LINE in `grep -n '#DESCRIPTION [^A-Za-z0-9].*[A-Za-z0-9].*[^A-Za-z0-9].*' /etc/enigma2/userbouquet.${BOUQUET}_IpTv.tv | cut -d : -f 1`; do
FUNDZEILEBOUQUET=`expr ${MARKER_LINE} - 1` #Auf Zeile mit Senderdaten setzen in Bouquet
BOUQUETDATEN=`cat /etc/enigma2/userbouquet."${BOUQUET}"_IpTv.tv | sed -n "${FUNDZEILEBOUQUET}"p`
echo ${BOUQUETDATEN} | sed -i "${FUNDZEILEBOUQUET}s/ .*:.*:.*:.*:.*:.*:.*:.*:.*:.*:/ 1:64:${MARKER}:0:0:0:0:0:0:0:/g" /etc/enigma2/userbouquet."${BOUQUET}"_IpTv.tv
MARKER=`expr ${MARKER} + 1`
done
echo "[+] Lade Bouquet neu"
wget -qO - "http://127.0.0.1/web/servicelistreload?mode=2" >> /tmp/wget_status
WGET_STATUS=`grep "<e2state>True</e2state>" /tmp/wget_status`
if [ -z "${WGET_STATUS}" ]; then
echo "[-] Bouquet konnte nich neu geladen werden."
echo "[-] Reciver von Hand neu starten."
echo "[-] Weiter mit Fehler"
rm /tmp/wget_status
else
echo "[+] Bouquet wurde neu geladen."
rm /tmp/wget_status
fi
echo "[+] Fertig"
rm /tmp/userbouquet.${BOUQUET}_IpTv.tv
exit 0;
Nun Braucht man im Terminal nur eingeben...
Code:
/usr/script/iptv.sh
Ich hoffe das es soweit verständlich ist.
Grüße Teorema
Zuletzt bearbeitet: