Advertisement
efrankzm

skytimer.sh, create Autotimer for enigma2

Dec 1st, 2020 (edited)
461
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 7.36 KB | None | 0 0
  1. #!/bin/sh
  2. # Script  by dv-studios.de - frank@dv-studios.de
  3. # Darf kopiert und angepasst werden und freue mich über Emails/Meinungen
  4. # inputdir sollte auf das Aufnahmeverzeichnis angepasst werden
  5. # Eigene Sender nach Wunsch anpassen
  6. # Hoffe, der Rest ist selbsterklärend
  7. # 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
  8. # 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
  9. #Vor Ausführung wird /etc/enigm2/autotimer.xml in autotimer.skytimer_sh kopiert/gesichert
  10. #Am Besten ist es wenn die autotimer.xml leer ist
  11. #Es funktioniert zwar auch mit bereits angelegten Autotimern, aber dann wird die "nextTimerId" nicht korrekt geschrieben
  12. #Script sollte bei Aufruf über putty o ähnl. nur mit root Rechten ausgeführt werden und sollte in /home/root gespeichert werden
  13. # ---------------------
  14. #Aufruf im Putty Terminal: ./skytimer.sh (Vor Aufruf, Rechte mit chmod 775 skytimer.sh setzen)
  15. #Es werden folgende Dateien erstellt:
  16. #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)
  17. #aufnahmen.txt -> Alle Aufnahmen für die EIN Autotimer in /etc/enigma2/autotimer.xml erzeugt wurde
  18. #skyaufnahme.txt -> Alle Aufnahmen für die KEIN Autotimer in /etc/enigma2/autotimer.xml erzeugt wurde
  19. # ----------------------
  20.  
  21. echo skytimer.sh V1.0 - 01.12.2020
  22. echo Durchsuche jetzt das Aufnahmeverzeichnis nach Aufnahmen mit Werbung und erstelle neue Timer mit Sky aus EPG Daten
  23. cp /etc/enigma2/autotimer.xml /etc/enigma2/autotimer.skytimer_sh
  24.  
  25. echo Alles HD Sender mit Anbieter Sky ermitteln + eigene Sender hinzufügen
  26. echo Diese Sender werden beim Anlegen eines Autotimers ausgeschlossen
  27. rm sender.txt
  28. while read line; do
  29.      if [[ $line =~ p:SKY ]]; then #Anbieter ist SKY
  30.      if [[ $sender =~ HD ]]; then #nur HD Sender
  31.      sauber=$(echo "$sender" | sed 's/[^0-9a-zA-Z !+\_\-]*//g') #Sonderzeichen raus
  32.      echo $sauber >> sender.txt
  33.      echo -e "Eintrag in sender.txt: \033[32m$sauber\033[37m"
  34.      fi
  35.      fi
  36.      sender=$line
  37. done < /etc/enigma2/lamedb
  38.  
  39. add_eigene ()
  40. {
  41.  echo $1 >> sender.txt
  42.  echo -e "Eintrag in sender.txt: \033[32m$1\033[37m"
  43. }
  44.  
  45. #Zusätzliche Sender selbst einfügen -diese Sender werden beim Anlegen eines Autotimers ausgeschlossen
  46. add_eigene *****---- Eigene Sender hinzugefügt -----*****
  47. add_eigene Disney Channel HD
  48. add_eigene Disney Cinemagic HD
  49. add_eigene KiKa
  50. add_eigene KIKA
  51. add_eigene Kika
  52. add_eigene MGM
  53. add_eigene Sky 3D
  54. add_eigene Sky Action HD
  55. add_eigene Sky Cinema HD
  56. add_eigene Sky Cinema+1  HD
  57. add_eigene Sky Cinema+24 HD
  58. add_eigene Sky Disney Prinzessinnen HD
  59. add_eigene Sky Hits HD
  60. add_eigene Syfy HD
  61. #add_eigene ONE
  62. #add_eigene SWR
  63. #add_eigene ZDF
  64.  
  65. function readdir () #Durchsucht das Verzeichnis aus Parameterübergabe $1
  66. {
  67. echo Suche in: $1
  68.  for datei in $1/*.eit ; #Suche alle *.eit=*.ts im Directory
  69.   do
  70.     dateiname=$(basename "$datei") #dateiname ohne Verzeichnis
  71.     nosky=no #Erst mal auf nicht gefunden in Sky Aufnahme Setzen
  72.     while read line; do
  73.    
  74.      if [[ $line =~ "*****----" ]];then #Ist Eigene Sender Kommentar, nicht suchen, line auf nächsten Sender setzen
  75.      read line
  76.      fi
  77.    
  78.      if [[ $datei =~ "$line" ]]; then #Dateiname enthält Sender aus sender.txt = dann ist es eine Skyaufnahme in HD
  79.      nosky=sky #Ist Skyaufnahme o Sender ohne Werbung
  80.      fi
  81.     done < /home/root/sender.txt #for datei in "$inputdir"/*.ts ;
  82.    
  83.     autotimertxt=${datei#*- }
  84.     autotimertxt=${autotimertxt%.*} # ".ts" rechts abschneiden
  85.     autotimertxt=${autotimertxt#*- } # "*-" links abschneiden (Sender)
  86.     autotimertxt=${autotimertxt% -*} # "-*" rechts abschneiden
  87.     autotimertxt=${autotimertxt% -*} # "-*" rechts abschneiden
  88.     autotimertxt=${autotimertxt% -*} # "-*" rechts abschneiden
  89.     autotimertxt=${autotimertxt%    } # " " Leerstelle rechts abschneiden
  90.     #autotimertxt=${autotimertxt% *} # " x" Leerstelle + text rechts abschneiden
  91.     autotimertxt=${autotimertxt//"&"/&amp;} # "&" ersetzen durch escape sequenz
  92.     autotimertxt=${autotimertxt//_ / } # "_ " ersetzen durch " "
  93.     #autotimertxt=${autotimertxt//*_/} # "_" ausschneiden
  94.    
  95.     exists=0; #Autotimer vorhanden auf false
  96.    
  97.     echo $dateiname
  98.    
  99.     while read line1; do   #Schon in Aufnahmeliste vorhanden, ganze Datei durchsuchen
  100.      if [[ $line1 =~ $autotimertxt ]]; then
  101.      #echo -e "\033[33m$line1\033[37m"
  102.      echo -e "\033[32mAutotimer schon vorhanden\033[37m"
  103.      exists=1 #Autotimer ist schon vorhanden
  104.      fi
  105.     done < /home/root/aufnahmen.txt #for line1;
  106.    
  107.     if [ $exists == 0 ];then #Autotimer nur schreiben wenn nicht schon vorhanden...
  108.      if [[ $nosky =~ no ]]; then #...und schreiben wenn keine Skyaufnahme
  109.       echo -e "\033[34m$datei... erstelle Autotimer\033[37m"
  110.       echo $datei  >> aufnahmen.txt
  111.       ((timerid++))
  112.       echo >> /etc/enigma2/autotimer.xml #Leerzeile und Autotimereintrag erstellen
  113.       echo "<timer name=\"$autotimertxt\" match=\"$autotimertxt\" enabled=\"yes\" id=\"$timerid\" offset=\"0\" avoidDuplicateDescription=\"2\" searchType=\"start\">" >> /etc/enigma2/autotimer.xml
  114.       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
  115.       echo "</timer>" >> /etc/enigma2/autotimer.xml
  116.       else
  117.       echo -e "\033[32m$datei ist Sky HD -Aufnahme... nix zu tun\033[37m"
  118.       echo $datei >> skyaufnahme.txt
  119.      fi #if [[ $nosky =~ no ]]; then
  120.     fi #if [ $exists == 0 ];then
  121. done #for datei in "$ordner"/*.eit ; #Suche alle *.eit=*.ts im Directory
  122. }  
  123.  
  124. # Hier beginnt der Hauptteil
  125. rm skyaufnahme.txt
  126. rm aufnahmen.txt
  127. touch /home/root/aufnahmen.txt # leere Datei erzeugen, sonst später in function readdir () Fehler
  128. 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
  129.  
  130. inputdir="/hdd/movie/" #hier beginnen
  131. timerid=1
  132. readdir $inputdir #Aufnahme root auch durchsuchen, Autotimer anlegen
  133.  
  134. for ordner in "$inputdir"* ;
  135. do
  136.   if [ -d $ordner ]< /dev/null > /dev/null 2>&1; then  #Nur durchsuchen, falls Directory (Fehlerausgabe nach Nirwana, wichtig falls kein Directory)
  137.      
  138.      readdir $ordner #Durchsuche das Verzeichnis xyz und erzeuge autotimer
  139.  
  140.   fi #if [ -d $ordner ]< /dev/null > /dev/null 2>&1; then
  141. done #for ordner in "$inputdir"* ;
  142. echo >> /etc/enigma2/autotimer.xml #Leerzeile am Schluss wieder anfügen
  143. sed '1,2d' /etc/enigma2/autotimer.xml > tmpfile #1+2Zeile aus autotimer.xml löschen, in tmp schreiben
  144. echo "<?xml version=\"1.0\" ?>" >> tmpfile1 #1 Zeile neu erstellen
  145. echo "<autotimer version=\"8\" nextTimerId=\"$timerid\">" >> tmpfile1 #2 Zeile mit letzter $timerid schreiben
  146. echo >>tmpfile1 #Leerzeile
  147. sed '1d' tmpfile >> tmpfile1 #Rest der autotimer.xml (ohne Zeile 1+2) an tmpfile1 hängen
  148. cp tmpfile1 /etc/enigma2/autotimer.xml #xml neu schreiben
  149. rm tm* #tmp Dateien löschen
  150. echo "</autotimer>" >> /etc/enigma2/autotimer.xml #Letzte Zeile = Abschluss der xml Datei in eiigma2
  151. echo
  152. echo -e "\033[36mFERTIG, $timerid Autotimereinträge erzeugt\033[37m"
  153. echo ---------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement