Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- # Script by dv-studios.de - frank@dv-studios.de
- # Darf kopiert und angepasst werden und freue mich über Emails/Meinungen
- # inputdir sollte auf das Aufnahmeverzeichnis angepasst werden
- # Eigene Sender nach Wunsch anpassen
- # Hoffe, der Rest ist selbsterklärend
- # Wenn man das z. Bsp. Corona Plugin verwendet, kann man das script einfach in den corona ordner kopieren, chmod 775 skytimer.sh, und dann über die Erweiterung "My scripts..." aufrufen
- # In Zeile: echo "<bouquet>1:7:1:0:0:0:0:0:0:0:FROM BOUQUET \"userbouquet.favourites.tv\" ORDER BY bouquet</bouquet> <!-- Sky -->" .... hier das Boquet anpassen
- #Vor Ausführung wird /etc/enigm2/autotimer.xml in autotimer.skytimer_sh kopiert/gesichert
- #Am Besten ist es wenn die autotimer.xml leer ist
- #Es funktioniert zwar auch mit bereits angelegten Autotimern, aber dann wird die "nextTimerId" nicht korrekt geschrieben
- #Script sollte bei Aufruf über putty o ähnl. nur mit root Rechten ausgeführt werden und sollte in /home/root gespeichert werden
- # ---------------------
- #Aufruf im Putty Terminal: ./skytimer.sh (Vor Aufruf, Rechte mit chmod 775 skytimer.sh setzen)
- #Es werden folgende Dateien erstellt:
- #sender.txt -> Ist einer der Sender aus diesem File in dem Dateinamen der Aufnahme vorhanden, wird bei dieser Aufnahme kein Autotimer erstellt (Vermeidung Autotimer bei Skysendern)
- #aufnahmen.txt -> Alle Aufnahmen für die EIN Autotimer in /etc/enigma2/autotimer.xml erzeugt wurde
- #skyaufnahme.txt -> Alle Aufnahmen für die KEIN Autotimer in /etc/enigma2/autotimer.xml erzeugt wurde
- # ----------------------
- echo skytimer.sh V1.0 - 01.12.2020
- echo Durchsuche jetzt das Aufnahmeverzeichnis nach Aufnahmen mit Werbung und erstelle neue Timer mit Sky aus EPG Daten
- cp /etc/enigma2/autotimer.xml /etc/enigma2/autotimer.skytimer_sh
- echo Alles HD Sender mit Anbieter Sky ermitteln + eigene Sender hinzufügen
- echo Diese Sender werden beim Anlegen eines Autotimers ausgeschlossen
- rm sender.txt
- while read line; do
- if [[ $line =~ p:SKY ]]; then #Anbieter ist SKY
- if [[ $sender =~ HD ]]; then #nur HD Sender
- sauber=$(echo "$sender" | sed 's/[^0-9a-zA-Z !+\_\-]*//g') #Sonderzeichen raus
- echo $sauber >> sender.txt
- echo -e "Eintrag in sender.txt: \033[32m$sauber\033[37m"
- fi
- fi
- sender=$line
- done < /etc/enigma2/lamedb
- add_eigene ()
- {
- echo $1 >> sender.txt
- echo -e "Eintrag in sender.txt: \033[32m$1\033[37m"
- }
- #Zusätzliche Sender selbst einfügen -diese Sender werden beim Anlegen eines Autotimers ausgeschlossen
- add_eigene *****---- Eigene Sender hinzugefügt -----*****
- add_eigene Disney Channel HD
- add_eigene Disney Cinemagic HD
- add_eigene KiKa
- add_eigene KIKA
- add_eigene Kika
- add_eigene MGM
- add_eigene Sky 3D
- add_eigene Sky Action HD
- add_eigene Sky Cinema HD
- add_eigene Sky Cinema+1 HD
- add_eigene Sky Cinema+24 HD
- add_eigene Sky Disney Prinzessinnen HD
- add_eigene Sky Hits HD
- add_eigene Syfy HD
- #add_eigene ONE
- #add_eigene SWR
- #add_eigene ZDF
- function readdir () #Durchsucht das Verzeichnis aus Parameterübergabe $1
- {
- echo Suche in: $1
- for datei in $1/*.eit ; #Suche alle *.eit=*.ts im Directory
- do
- dateiname=$(basename "$datei") #dateiname ohne Verzeichnis
- nosky=no #Erst mal auf nicht gefunden in Sky Aufnahme Setzen
- while read line; do
- if [[ $line =~ "*****----" ]];then #Ist Eigene Sender Kommentar, nicht suchen, line auf nächsten Sender setzen
- read line
- fi
- if [[ $datei =~ "$line" ]]; then #Dateiname enthält Sender aus sender.txt = dann ist es eine Skyaufnahme in HD
- nosky=sky #Ist Skyaufnahme o Sender ohne Werbung
- fi
- done < /home/root/sender.txt #for datei in "$inputdir"/*.ts ;
- autotimertxt=${datei#*- }
- autotimertxt=${autotimertxt%.*} # ".ts" rechts abschneiden
- autotimertxt=${autotimertxt#*- } # "*-" links abschneiden (Sender)
- autotimertxt=${autotimertxt% -*} # "-*" rechts abschneiden
- autotimertxt=${autotimertxt% -*} # "-*" rechts abschneiden
- autotimertxt=${autotimertxt% -*} # "-*" rechts abschneiden
- autotimertxt=${autotimertxt% } # " " Leerstelle rechts abschneiden
- #autotimertxt=${autotimertxt% *} # " x" Leerstelle + text rechts abschneiden
- autotimertxt=${autotimertxt//"&"/&} # "&" ersetzen durch escape sequenz
- autotimertxt=${autotimertxt//_ / } # "_ " ersetzen durch " "
- #autotimertxt=${autotimertxt//*_/} # "_" ausschneiden
- exists=0; #Autotimer vorhanden auf false
- echo $dateiname
- while read line1; do #Schon in Aufnahmeliste vorhanden, ganze Datei durchsuchen
- if [[ $line1 =~ $autotimertxt ]]; then
- #echo -e "\033[33m$line1\033[37m"
- echo -e "\033[32mAutotimer schon vorhanden\033[37m"
- exists=1 #Autotimer ist schon vorhanden
- fi
- done < /home/root/aufnahmen.txt #for line1;
- if [ $exists == 0 ];then #Autotimer nur schreiben wenn nicht schon vorhanden...
- if [[ $nosky =~ no ]]; then #...und schreiben wenn keine Skyaufnahme
- echo -e "\033[34m$datei... erstelle Autotimer\033[37m"
- echo $datei >> aufnahmen.txt
- ((timerid++))
- echo >> /etc/enigma2/autotimer.xml #Leerzeile und Autotimereintrag erstellen
- echo "<timer name=\"$autotimertxt\" match=\"$autotimertxt\" enabled=\"yes\" id=\"$timerid\" offset=\"0\" avoidDuplicateDescription=\"2\" searchType=\"start\">" >> /etc/enigma2/autotimer.xml
- echo "<bouquet>1:7:1:0:0:0:0:0:0:0:FROM BOUQUET \"userbouquet.favourites.tv\" ORDER BY bouquet</bouquet> <!-- Sky -->" >> /etc/enigma2/autotimer.xml
- echo "</timer>" >> /etc/enigma2/autotimer.xml
- else
- echo -e "\033[32m$datei ist Sky HD -Aufnahme... nix zu tun\033[37m"
- echo $datei >> skyaufnahme.txt
- fi #if [[ $nosky =~ no ]]; then
- fi #if [ $exists == 0 ];then
- done #for datei in "$ordner"/*.eit ; #Suche alle *.eit=*.ts im Directory
- }
- # Hier beginnt der Hauptteil
- rm skyaufnahme.txt
- rm aufnahmen.txt
- touch /home/root/aufnahmen.txt # leere Datei erzeugen, sonst später in function readdir () Fehler
- sed -i -n -e :a -e '1,2!{P;N;D;};N;ba' /etc/enigma2/autotimer.xml # letzten 2 Zeilen der autotimer.xml löschen
- inputdir="/hdd/movie/" #hier beginnen
- timerid=1
- readdir $inputdir #Aufnahme root auch durchsuchen, Autotimer anlegen
- for ordner in "$inputdir"* ;
- do
- if [ -d $ordner ]< /dev/null > /dev/null 2>&1; then #Nur durchsuchen, falls Directory (Fehlerausgabe nach Nirwana, wichtig falls kein Directory)
- readdir $ordner #Durchsuche das Verzeichnis xyz und erzeuge autotimer
- fi #if [ -d $ordner ]< /dev/null > /dev/null 2>&1; then
- done #for ordner in "$inputdir"* ;
- echo >> /etc/enigma2/autotimer.xml #Leerzeile am Schluss wieder anfügen
- sed '1,2d' /etc/enigma2/autotimer.xml > tmpfile #1+2Zeile aus autotimer.xml löschen, in tmp schreiben
- echo "<?xml version=\"1.0\" ?>" >> tmpfile1 #1 Zeile neu erstellen
- echo "<autotimer version=\"8\" nextTimerId=\"$timerid\">" >> tmpfile1 #2 Zeile mit letzter $timerid schreiben
- echo >>tmpfile1 #Leerzeile
- sed '1d' tmpfile >> tmpfile1 #Rest der autotimer.xml (ohne Zeile 1+2) an tmpfile1 hängen
- cp tmpfile1 /etc/enigma2/autotimer.xml #xml neu schreiben
- rm tm* #tmp Dateien löschen
- echo "</autotimer>" >> /etc/enigma2/autotimer.xml #Letzte Zeile = Abschluss der xml Datei in eiigma2
- echo
- echo -e "\033[36mFERTIG, $timerid Autotimereinträge erzeugt\033[37m"
- echo ---------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement