xmltv2vdr plugin: create vs merge and pipe vs file

  • Hello,


    I am writing this thread in english, because xmltv2vdr is a plugin that can be of interest to an international audience.


    Could anybody please tell me how create and merge in the plugin configuration work? I am particularly interested to know in what cases the data of the supplied xmltv file is added to the epg and in what cases it is not added to it? Finally, could anybody please tell me why it is not possible to choose more than 1 day in advance when using the merge mode to import data.


    Moreover, could anybody please tell me the reason for the distinction between file and pipe in the control file? For example, could I not add a command to download data to the executable corresponding to a control file that use the file mode?


    Maybe a skeleton of what the executable is expected to do in both situations could help clearify the difference.


    Thanks in advance for any explanation.


    Cheers,


    Ludi

  • I am writing this thread in english, because xmltv2vdr is a plugin that can be of interest to an international audience.


    Ich kann Antworten, aber Übersetzen muss du ;)


    Could anybody please tell me how create and merge in the plugin configuration work?


    So ganz klar ist mir das auch nicht. Merge erstellt keine neuen Events wenn zufällig noch keines da ist, das mischt das externe EPG nur mit bereits bestehenden (z.B. den Episodenenamen eine Serie dem sender EPG Eintrag hinzufügen). "create" fügt das externe EPG ein sofern nicht schon welches vorhanden ist.


    Finally, could anybody please tell me why it is not possible to choose more than 1 day in advance when using the merge mode to import data.


    Ein EPG Eintrag der per "merge" gemischt wurde muss vor zukünftigen Updates geschützt werden (sonst wird das sofort wieder durchs EPG des Senders überschrieben), also greifen Änderungen im Sender EPG nicht mehr. Würde man für 7 Tage mergen kämen Programmänderungen übers Sender EPG nicht mehr durch (d.h. das EPG wäre falsch wenn der Sender sein Programm ändert). Und ein Tag reicht ja für Serienaufnahmen mit epgsearch (ist ja eigentlich der Hauptgrund für merge).


    Moreover, could anybody please tell me the reason for the distinction between file and pipe in the control file?


    Es sind halt zwei Möglichkeiten wie es geht. Der Author des Grabbers entscheidet welche er nutzen möchte.


    For example, could I not add a command to download data to the executable corresponding to a control file that use the file mode?


    Ist mir nicht ganz klar wie du es meinst. Gib mal nen Beispiel.


    Maybe a skeleton of what the executable is expected to do in both situations could help clearify the difference.


    Das Programm gibt im pipe Modus einfach nur das xml nach stdout (also Fehlermeldungen gehören dann nach stderr) aus, im file Modus schreibt es das als Datei hin damit das Plugin sie lesen kann.


    cu

  • Merge erstellt keine neuen Events wenn zufällig noch keines da ist, das mischt das externe EPG nur mit bereits bestehenden (z.B. den Episodenenamen eine Serie dem sender EPG Eintrag hinzufügen). "create" fügt das externe EPG ein sofern nicht schon welches vorhanden ist.


    Ein EPG Eintrag der per "merge" gemischt wurde muss vor zukünftigen Updates geschützt werden (sonst wird das sofort wieder durchs EPG des Senders überschrieben), also greifen Änderungen im Sender EPG nicht mehr.

    Warum nicht einfach: Falls das EPG event schon besteht, dann wird es gemergt; besteht es noch nicht, dann wird es erzeugt? Eigentlich, zieht man ja ein externes EPG hinzu, weil das EPG das vom Sender kommt nicht genügend informationen hat.


    Ich verstehe auch den Sinn mit dem Sperren für nur einen Tag nicht: Warum lässt man das EPG nicht komplett überschreiben auch wenn es dann gesperrt ist und entsperrt nur zum Beispiel die 3 letzten Stunden vor der aktuellen Zeit. Somit würde doch der Episodenname dann noch rechtzeitig überschrieben?


    Bitte versteh mich nicht falsch: damit will ich nicht das xmltv2vdr plugin kritisieren; ich möchte eigentlich verstehen, warum es so gemacht worden ist wie es ist. Und ich beginne mich zu fragen ob nicht andere Sachen wie das No-EPG damit eine Rolle spielen.

    Zitat von »ludi«


    For example, could I not add a command to download data to the executable corresponding to a control file that use the file mode?

    Nehmen wir an, ich habe eine Steuerdatei mit file mode und eine eine dazugehörige Programmdatei mit folgendem Inhalt:


    Bash
    #!/bin/sh
    
    
    Kommandos zum herunterladen der Daten
    
    
    Kommandos zum umgestalten der Daten um sie xmltv2vdr konform zu machen 
    
    
    Kommandos zum erzeugen der xmltv Datei


    Zu welchem Zeitpunkt wird xmltv2vdr die xmltv Datei lesen? Nach die Programmdatei beendet wurde?


    Nehmen wir an, am Ende der Programmdatei würde ich ein "cat xmltvDatei" hinzufügen. Hätte ich dann eine Programmdatei, die zu einer Kontrolldatei mit pipe mode passen würde?


    MfG


    Ludi

  • Warum nicht einfach: Falls das EPG event schon besteht, dann wird es gemergt; besteht es noch nicht, dann wird es erzeugt?


    Ja, so würde ich mir das auch wünschen ;) Das dem nicht so ist ist der Punkt den ich auch noch nicht wirklich verstehe.


    Ich verstehe auch den Sinn mit dem Sperren für nur einen Tag nicht: Warum lässt man das EPG nicht komplett überschreiben auch wenn es dann gesperrt ist und entsperrt nur zum Beispiel die 3 letzten Stunden vor der aktuellen Zeit. Somit würde doch der Episodenname dann noch rechtzeitig überschrieben?


    Wenn man die letzten 3 Stunden vor der aktuellen Zeit entsperrt dann wird das EPG sofort wieder komplett vom Sender EPG überschrieben und man verliert die Zusatzinfos.


    Der VDR ist eigentlich garnicht dafür gemacht externes EPG hinzuzumischen (zum richtig machen fehlt einiges in der VDR EPG Verwaltung), also versucht das Plugin aus dem gegebenen das beste zu machen. Und das ist in der Tat zum mischen nur für ne kurze Zeit in der Zukunft zu freezen.
    Ich habe da die letzten Jahre (ich habe mit derartigen auch schon vor der Existens diesesPlugins rumgespielt) auch schon alle Möglichkeiten durchprobiert, in der Praxis (wo man herrausfindet das das alles ganricht so einfach ist wie man theoretisch denkent ;) ) ist das so in der Tat am besten.


    Bitte versteh mich nicht falsch: damit will ich nicht das xmltv2vdr plugin kritisieren;


    Ist ja auch gar nicht meines ;) Ich bin auhc nur Nutzer.


    ich möchte eigentlich verstehen, warum es so gemacht worden ist wie es ist. Und ich beginne mich zu fragen ob nicht andere Sachen wie das No-EPG damit eine Rolle spielen.


    Die Sache ist ganz einfach, das Sender EPG wird ständig stumpf in die interne EPG Datenbank des VDR gepumpt. Nur wenn man die TableID eines EPG Eintrages auf "0" setzt lässt der VDR diesen in Ruhe.
    Also bleibt zum mischen nur einen EPG Eintrag vom VDR zu lesen, diesen mit den externen EPG Infos zu mischen und mit einer TableID von "0" zurückzuschreiben. Aber dann kömmen für diesen Eintrag EPG Änderungen des Sender nicht mehr durch. Und EPG Änderungen über die externe Quelle auch nicht (da das Plugin nicht weiss was es mit zwei Unterschiedlichen Sendungen zur selben Zeit tun soll).


    Mit noEPG kann man dafür sorgen das der VDR für einzelne Sender überhaupt keine EPG Infos mehr vom Sender liest.



    Es gibt da aber noch einige Seltsamkeiten, so löscht mir der VDR auf Sendern der Pro7/Sat.1 Gruppe gelegentlich den Episodennamen von EPG Einträgen die troz TableID=0 eigentlich nicht mehr angerührt werden sollten.
    Und einige alte noEPG Patches haben Probleme mit verlinkten Sendern.


    Nehmen wir an, ich habe eine Steuerdatei mit file mode und eine eine dazugehörige Programmdatei mit folgendem Inhalt:


    Bash
    #!/bin/sh
    
    
    Kommandos zum herunterladen der Daten
    
    
    Kommandos zum umgestalten der Daten um sie xmltv2vdr konform zu machen 
    
    
    Kommandos zum erzeugen der xmltv Datei


    Zu welchem Zeitpunkt wird xmltv2vdr die xmltv Datei lesen? Nach die Programmdatei beendet wurde?


    Ja genau, er ruft die Programmdatei auf und liest danach die xml Datei.


    Nehmen wir an, am Ende der Programmdatei würde ich ein "cat xmltvDatei" hinzufügen. Hätte ich dann eine Programmdatei, die zu einer Kontrolldatei mit pipe mode passen würde?


    Ja genau, es ist wirklich so einfach wie es scheint ;)


    cu

  • Ja, so würde ich mir das auch wünschen Das dem nicht so ist ist der Punkt den ich auch noch nicht wirklich verstehe.




    Wenn ich mich recht erinnere, brauchte man bei tvm2vdr "nur" anzugeben, von welchen Sendern man das EPG haben wollte. An Einstellungen wie create oder merge kann ich mich nicht erinnern. Weißt du vielleicht was dieser machte? Ersetzte er die Daten im EPG einfach mit den seinen?




    Die Sache ist ganz einfach, das Sender EPG wird ständig stumpf in die interne EPG Datenbank des VDR gepumpt. Nur wenn man die TableID eines EPG Eintrages auf "0" setzt lässt der VDR diesen in Ruhe.




    Also bleibt zum mischen nur einen EPG Eintrag vom VDR zu lesen, diesen mit den externen EPG Infos zu mischen und mit einer TableID von "0" zurückzuschreiben. Aber dann kömmen für diesen Eintrag EPG Änderungen des Sender nicht mehr durch. Und EPG Änderungen über die externe Quelle auch nicht (da das Plugin nicht weiss was es mit zwei Unterschiedlichen Sendungen zur selben Zeit tun soll).




    Hat man eine TableID pro Sender oder pro Event? Im letzteren Fall, könnte man ja nur die TableIDs für die 3 nächsten Stunden öffnen und die restlichen auf 0 lassen; es ist mir klar, dass in diesem Fall xmltv2vdr dauernd in den Tabellen arbeiten muss. Vielleicht könnte er sie ja einmal pro Stunde updaten. Oder wäre das ein zu starker Eingriff in den Funktionen des VDR?




    Ja genau, es ist wirklich so einfach wie es scheint




    Ich hätte "cat xmltvDatei > stdout" schreiben müssen; das wäre genauer gewesen; oder?





    Du scheinst dich mit Suchtimern auszukennen. Unter meinen Suchtimern gibt es einen (ich weiß nicht welchen), der mir dauernd eine Serie programmiert, die mich nicht interessiert. Gibt es eine Möglichkeit, den Suchtimern zu sagen, dass mich diese Serie nicht interessiert? (Irgendwo einen Eintrag der für alle Suchtimer gültig ist, da ich nicht weiß, welcher Suchtimer die Serie programmiert.)


    MfG

  • Wenn ich mich recht erinnere, brauchte man bei tvm2vdr "nur" anzugeben, von welchen Sendern man das EPG haben wollte. An Einstellungen wie create oder merge kann ich mich nicht erinnern. Weißt du vielleicht was dieser machte? Ersetzte er die Daten im EPG einfach mit den seinen?


    Das Plugin hatte ich nie verwendet.


    Hat man eine TableID pro Sender oder pro Event?


    Pro Event, das ist dazu gedacht eine Versionsnummer mitzugeben so das ein Receiver erkennen kann wenn ein Sender die EPG Infos geändert (z.B. aktuallisiert) hat. Aber das funktioniert in der Praxis eh nicht.


    Im letzteren Fall, könnte man ja nur die TableIDs für die 3 nächsten Stunden öffnen


    Dann werden die EPG Infos für die nächsten 3 Stunden sofort vom Sender EPG überschrieben und die Aufzeichnungen landen ohne vernünftige EPG Infos auf der HDD, ferner vermisst epgsearch dann z.B. die Episodennamen.


    Desweiteren reichen 3 Stunden Aktualisierung nicht aus wenn der VDR nicht 24/7 Durchläuft. Wenn er z.B. abens um 18:00Uhr ausgeht (und den ACPI Timer für 17:00Uhr des nächsten Tages setzt) dann wird er nicht merken wenn um 23:00 nen Film kommt (aufgrund einer Programmänderung für das schon seit 5 Tagen das aktuallisierte EPG gesendet wird) der eigentlich aufgenommen werden soll.


    Ich hätte "cat xmltvDatei > stdout" schreiben müssen; das wäre genauer gewesen; oder?


    Naja, cat schreibt eh nach stdout ;) Wichtig ist halt nur das man sicherstellt das Status-/Fehlermeldngen wirklich nach stderr laufen.


    Du scheinst dich mit Suchtimern auszukennen. Unter meinen Suchtimern gibt es einen (ich weiß nicht welchen), der mir dauernd eine Serie programmiert, die mich nicht interessiert. Gibt es eine Möglichkeit, den Suchtimern zu sagen, dass mich diese Serie nicht interessiert? (Irgendwo einen Eintrag der für alle Suchtimer gültig ist, da ich nicht weiß, welcher Suchtimer die Serie programmiert.)


    Am einfachsten wäre wenn du einfach mal in allen Suchtimern nachschaust (Einfach mit OK auf den Suchtimereintrag dann werden alle Treffer angezeigt) welcher diese Serie programiert und dort die Suchkreterien anpasst.


    cu

  • Dann werden die EPG Infos für die nächsten 3 Stunden sofort vom Sender EPG überschrieben und die Aufzeichnungen landen ohne vernünftige EPG Infos auf der HDD, ferner vermisst epgsearch dann z.B. die Episodennamen.
    Desweiteren reichen 3 Stunden Aktualisierung nicht aus wenn der VDR nicht 24/7 Durchläuft. Wenn er z.B. abens um 18:00Uhr ausgeht (und den ACPI Timer für 17:00Uhr des nächsten Tages setzt) dann wird er nicht merken wenn um 23:00 nen Film kommt (aufgrund einer Programmänderung für das schon seit 5 Tagen das aktuallisierte EPG gesendet wird) der eigentlich aufgenommen werden soll.


    In der Tat: daran habe ich nicht gedacht.


    Am einfachsten wäre wenn du einfach mal in allen Suchtimern nachschaust (Einfach mit OK auf den Suchtimereintrag dann werden alle Treffer angezeigt) welcher diese Serie programiert und dort die Suchkreterien anpasst.



    Danke für den Hinweis. Manchmal kann die Lösung so einfach sein.


    Ich glaube ich werde folgendermaßen verfahren: Ich werde bei den Importierten Sendern "create" benutzen und jedesmal das EPG für 8 Tage laden. Bei der Ausführzeit im xmltv2vdr werde ich eine Zeit einstellen, bei dem der VDR normalerweise ausgeschaltet ist. Ins weekly anacron werde ich einen Aufruf des xmltv2vdr plugins setzen, damit er 1 Mal pro Woche ausgeführt wird. Macht das Sinn? Gibt es vielleicht eine bessere Weise das xmltv2vdr plugin zu nutzen?


    Ich möchte nämlich das EPG mehrere Tage im Voraus und die Sender, dessen EPG ich importiere, geben nur Infos über das laufende und nächste Programm. Es ist mir klar, dass ich nachträgliche Änderungen im Programm auf diese Weise wahrscheinlich verpassen werde; im Augenblick weiß ich jedoch keinen besseren Ansatz.


    Dies bringt mich zu einer Frage über das VPS: Eigentlich weiß ich nicht ob ich es aktivieren soll oder nicht. Weiß jemand was geschieht, wenn ich VPS aktiviere, der Sender jedoch kein VPS benutzt? Wird dann einfach nichts aufgenommen, weil der VDR auf das VPS Signal wartet?



    Ein frohes neues Jahr an alle.


    MfG


    Ludi

  • Der VDR ist nicht dazu gedacht externe EPG-Einträge zuzulassen. Ein ungepatchter VDR (ohne NoEPG) kann nur einzelne Events sperren (mit TableID=0).
    xmltv2vdr soll aber mit jedem VDR funktionieren. Deshalb gibt es merge für Sender/VDRs bei denen kein NoEPG verwendet wird und create für Sender/VDRs bei denen NoEPG verwendet wird.


    Wenn ich schon beim kompilieren erkennen könnte ob es sich um einen VDR ohne NoEPG handelt so könnte ich die create-Option bei diesen Plugins schon von vornherein abschalten, da diese dort nicht funktionieren wird.


    Gruß


    Joe_D

  • Wenn ich schon beim kompilieren erkennen könnte ob es sich um einen VDR ohne NoEPG handelt so könnte ich die create-Option bei diesen Plugins schon von vornherein abschalten, da diese dort nicht funktionieren wird.


    Aber merge bei Sendern die kein eigenes EPG senden geht doch auch nicht, oder? Also brauchts create auch bei VDR ohne noEPG Patch.


    cu

Jetzt mitmachen!

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