Also ich hab schon mehrere Scripts mir angeschau die sowas ähnliches aber wesentlich professioneller gelöst haben. Hab mir jetzt was ganz simples (für meinen zweck ausreichend) zusammen gebastelt.
#!/bin/sh
echo "Senderlisten Update by couki"
cd
cd /etc/enigma2
rm -rf userbouquet.dbe00.tv
BQ="
Das klappt mit OpenPli super. Was muss ich ändern das wenn z.B. "userbouquet.dbe00" nicht auf dem Webserver exestiert, die Datei auf der Box nicht durch "rm" gelöscht wird.?
Dann wäre es perfekt.
Das hat mit dem Image nichts zu tun.
Also ja.
Es kommt aber darauf an, was genau Du vor hast. Viel einfacher geht es über Open-Web-If und Bouquet-Editor und Exportieren/Importieren.
Natürlich nur, wenn man physisch vor Ort ist.
Bei dem VTI Images ab 15.0.xx ist ein wenig anderst, da muss in die Datei STBBOOT.sh was rein, sonst geht es nach einem Reboot nicht.
/etc/enigma2/events/STBBOOT.sh
da das eintragen
Code:
#!/bin/sh
cd /usr/script/
./kanallisteupdater.sh > /tmp/kanallisteupdater.log 2>&1 &
Habe jetzt auch mal die Zeit gefunden, ein kleines Updateskript zu basteln
Bash:
#!/bin/sh
clear
echo "================================"
echo "Senderlistenupdate by Alex V 0.1"
echo "================================"
sleep 5
URL='https://url.testurl.com/senderliste'
NAME=senderliste.tar.gz
OVERSION=/tmp/$NAME
LVERSION=/usr/share/enigma2/senderliste
###Paketprüfung
PAKET=curl
if [[ -f $(which $PAKET 2>/dev/null) ]]
then
echo -e "\033[32m$PAKET ist bereits installiert...\033[0m"
else
echo -e "\033[33m$PAKET wird installiert...\033[0m"
opkg update && opkg install $PAKET
fi
#Prüfen ob lokales Paket vorhanden, falls nicht Fakepaket erstellen
[ ! -d $LVERSION ] && mkdir $LVERSION
[ ! -f $LVERSION/$NAME ] && touch -t 195001011536 $LVERSION/$NAME
# Lokale Version feststellen
SVERSIONDATE=$(stat -c %y $LVERSION/$NAME | cut -d ' ' -f1)
# Onliversion feststellen:
if curl -o/dev/null -sfIL "$URL/$NAME" 2>&1; then
echo ""
echo "Onlinversion vorhanden:"
wget -q -O $OVERSION $URL/$NAME
SONLINEDATE=$(stat -c %y $OVERSION | cut -d ' ' -f1)
else
echo -e "\t\033[1;31;40mKeine Onlineversion vorhanden! --> Abbruch!\033[0m"
exit 1
fi
echo " Senderliste Lokal = ($SVERSIONDATE)"
echo " Senderliste Online = ($SONLINEDATE)"
# Lokales Datum und Onlindatum vergleichen
if [ $LVERSION/$NAME -ot $OVERSION ]; then
echo ""
echo -e "\033[33mOnlineversion ist aktueller, Update wird durchgeführt!\033[0m"
wget -q -O $LVERSION/$NAME $URL/$NAME
sleep 1
rm /etc/enigma2/userbouquet.*
rm /etc/enigma2/bouquets.*
tar -xzf /tmp/$NAME -C /etc/enigma2
sleep 1
echo "Bouquets werden neu geladen"
wget -q -qO - http://127.0.0.1/web/servicelistreload?mode=0 > /dev/null 2>&1
sleep 1
else
echo -e "\033[32mKein Update notwendig...\033[0m"
exit 1
fi
echo -e "\033[32mUpdate abgeschlossen!\033[0m"
Die gepackte Senderliste liegt mit dem in $NAME definierten Namen im Netz in der in $URL definierten Adresse.
Zuerst wird überprüft ob ein lokales Senderlistenpaket vorhanden ist. Fall nein, wird ein Paket mit dem Erstelldatum 01.01.1950 erstellt.
Nun wird überprüft, ob online ein Senderlistenpaket erreichbar ist und falls ja, dieses heruntergeladen
Danach werden die Pakete verglichen und falls das Onlinepaket neuer ist, werden in /etc/enigma2 die Daten gelöscht und dann wird dies nach /etc/enigma2 entpackt.
Zum Schluss erfolgt noch ein Reload der Senderlisten
Verbesserungsvorschläge sind gern gesehen
ACHTUNG: Diese Script wurde nur auf openATV 7.3 getestet. Sollte aber auf allen Open-Alliance Images laufen.
Danke. Wobei ich bei mir keine blacklist, cables.xml, satellites.xml und terrestrial.xml bei mir nicht habe. Dafür aber zusätzlich die lamedb5. Funktioniert aber trotzdem.