You are not logged in.

Dear visitor, welcome to VDR Portal. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Sunday, December 25th 2011, 11:11pm

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

This post has been edited 3 times, last edit by "ludi" (Dec 27th 2011, 12:01am)


2

Sunday, December 25th 2011, 11:35pm

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

Mein VDR

Mein VDR
Digitainer2xBouget DVB-SDebian Squeeze (Kernel 2.6.35.3 von kernel.org)Softdevice Ausgabepluginvdr 1.6.0-3 (Extensions Patch 72) und viele Plugins von SourceMedion X10 FernbedienungSDC-Megtron Display (240x128x1) mit GraphLCD-PluginFreevo 1.9.0
Vodcatcher Helper in ein freundliches DEB verpackt, Tester Willkommen: http://dl.dropbox.com/s/705bh6ydgisfrqu/index.htmlFingerprint: 8A104A00D5031773A9F72A19BAEE135EA7860149

This post has been edited 1 times, last edit by "Keine_Ahnung" (Dec 25th 2011, 11:41pm)


3

Monday, December 26th 2011, 11:58pm

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?

Quoted


Ist mir nicht ganz klar wie du es meinst. Gib mal nen Beispiel.
Nehmen wir an, ich habe eine Steuerdatei mit file mode und eine eine dazugehörige Programmdatei mit folgendem Inhalt:

Source code

1
2
3
4
5
6
7
#!/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

4

Tuesday, December 27th 2011, 1:02am

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:

Source code

1
2
3
4
5
6
7
#!/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

Mein VDR

Mein VDR
Digitainer2xBouget DVB-SDebian Squeeze (Kernel 2.6.35.3 von kernel.org)Softdevice Ausgabepluginvdr 1.6.0-3 (Extensions Patch 72) und viele Plugins von SourceMedion X10 FernbedienungSDC-Megtron Display (240x128x1) mit GraphLCD-PluginFreevo 1.9.0
Vodcatcher Helper in ein freundliches DEB verpackt, Tester Willkommen: http://dl.dropbox.com/s/705bh6ydgisfrqu/index.htmlFingerprint: 8A104A00D5031773A9F72A19BAEE135EA7860149

5

Wednesday, December 28th 2011, 6:32pm

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

This post has been edited 1 times, last edit by "ludi" (Dec 28th 2011, 6:40pm)


6

Wednesday, December 28th 2011, 7:12pm

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

Mein VDR

Mein VDR
Digitainer2xBouget DVB-SDebian Squeeze (Kernel 2.6.35.3 von kernel.org)Softdevice Ausgabepluginvdr 1.6.0-3 (Extensions Patch 72) und viele Plugins von SourceMedion X10 FernbedienungSDC-Megtron Display (240x128x1) mit GraphLCD-PluginFreevo 1.9.0
Vodcatcher Helper in ein freundliches DEB verpackt, Tester Willkommen: http://dl.dropbox.com/s/705bh6ydgisfrqu/index.htmlFingerprint: 8A104A00D5031773A9F72A19BAEE135EA7860149

7

Sunday, January 1st 2012, 9:37pm

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

Joe_D

Professional

Posts: 977

Location: Kuchen

  • Send private message

8

Sunday, January 8th 2012, 5:57pm

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

9

Sunday, January 8th 2012, 6:06pm

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

Mein VDR

Mein VDR
Digitainer2xBouget DVB-SDebian Squeeze (Kernel 2.6.35.3 von kernel.org)Softdevice Ausgabepluginvdr 1.6.0-3 (Extensions Patch 72) und viele Plugins von SourceMedion X10 FernbedienungSDC-Megtron Display (240x128x1) mit GraphLCD-PluginFreevo 1.9.0
Vodcatcher Helper in ein freundliches DEB verpackt, Tester Willkommen: http://dl.dropbox.com/s/705bh6ydgisfrqu/index.htmlFingerprint: 8A104A00D5031773A9F72A19BAEE135EA7860149