SHELLSCRIPT | Rytec EPG Grabber für TvHeadend

  • Hallo,

    habe mir ein kleines Skript geschrieben, das die Rytec EPGs saugt und in TVHeadend schiebt.
    Dachte es könnte für jemanden nützlich sein.

    Im Endeffekt sind es 2 Dateien.

    Zunächst einmal das Skript selbst:


    Und die Datendatei. Hier kann man die EPGs eintragen, die man gerne automatisch updaten möchte:


    Das ganze ruft man dann manuell oder mit einem Cronjob auf.
    In meinem Beispiel hier einmal die Woche:

    Bash: /etc/crontab
    0 4 * * 5       root    /opt/epgrabber/epggrabber.sh > /dev/null


    Ein manueller Aufruf sollte so klappen:

    Code
    > apt-get install unp wget
    > chmod +x /opt/epgrabber/epggrabber.sh
    > /opt/epgrabber/epggrabber.sh


    In TvHeadend aktiviert man das "Exernal XMLTV" Modul (Configuration -> Channel / EPG -> EPG Grabber Modules)
    Nach dem Lauf des Skriptes kann man unter Configuration -> Channel /EPG -> EPG Grabber Channels überprüfen, ob es geklappt hat.
    Auch unten im TvHeadend-Logfenster sollte sich während des Imports etwas tun.

    Viel Spass :)

    wowo

    2 Mal editiert, zuletzt von wowo (22. November 2017 um 00:09)

  • wie wäre es mit ein wenig Dokumenation?

    So wie ich es verstehe, löscht du erstmal allen Inhalt des Ordners: /opt/epgrabber/tmp/
    Besteht der Ordner von Haus aus? Wenn nicht, durch was wird der Ordner erstellt?

    Dann ist das hier:

    Code
    for DAT in $(cat /opt/epgrabber/downloadlist.dat)
    do

    nicht ganz sauber. Eine Command-substitution würde ich nicht machen, wenn ich eine Datei auslesen möchte. Dafür gibt es

    Code
    while IFS= read -r line; do
      printf '%s\n' "$line"
    done < "$file"

    Kannst dir ja das mal durchlesen:
    http://mywiki.wooledge.org/BashFAQ/001

    Weiter halte ich es für keine gute Idee etwas zusätzlich zu installieren (unp) was auch ohne zu berwerkstelligen ist. Siehe:

    https://wiki.ubuntuusers.de/gzip/

    Du musst auch bedenken, dass es Distros gibt für die unp vielleicht gar nicht zur Verfügung steht. Also lieber alles POSIX schreiben und schauen was mit Bordmitteln geht, bevor man auf zusätzliche Software zurückgreift ;) .

    Ich sehe auch keine checks ob das, was du gemacht hast auch überprüft wird, dass es auch gemacht wurde.

    Einen kleinen Verbesserungsvorschlag habe ich noch...mich stört entweder der Dateiname oder die Shebang. Das Script hat .sh als Endung, in der Shebang sagst du aber, dass es ein Bash-Script ist. Entweder du änderst deine Shebang zu #!/bin/sh, was dazu führen wird, dass dein Script vielleicht nicht mehr sauber läuft (bash!=sh) oder du änderst den Dateinamen und lässt die Endung einfach weg ;). Bash Scripte brauchen keine Endung. Es verwirrt halt nur den Scriptleser, wenn er .sh als Endung sieht, dann auch ein sh-script erwartet, im Endeffekt aber ein Bash-script bekommt.

    Ansonsten sehr cool :thumbup: . Über das ein oder andere kann man vielleicht nochmal nachdenken und es verbessern...der Ansatz ist aber nett ;)

  • Hi,
    kannst gerne alles ändern, was Du möchtest.
    Habs lediglich für mich selbst quick and dirty runtergeschrieben.
    Da es gut funktioniert dachte ich mir, ich poste es auch hier.

    Das tmp Verzeichnis musste man manuell anlegen, habs jetzt noch mit ins Skript gepackt.

    Gruss
    wowo

    2 Mal editiert, zuletzt von wowo (22. November 2017 um 00:10)

  • ja sicher..alles gut.

    Ich werde es nicht ändern, da es micht nicht betrifft ;) .

    Dachte nur, dass es dich vielleicht interessiert, wie man manche Sachen besser/anders machen könnte.

    Aber wenn nicht, dann nicht. Ist ja keine Pflicht.

    Gute Nacht :sleeping:

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!