epg2vdr verändert aux-Feld bei Timern

  • Moin!


    Ich bin gerade dabei, mir einen Ersatz für epgsearch zu basteln (sieht auch schon gar nicht schlecht aus). Um die Timer, die mein Plugin anlegt, wiederzuerkennen, setze ich mir einen Text ins Aux-Feld. Leider sieht es nun so aus, als ob epg2vdr da noch ein paar Daten hinten anhängt. Muss das so? Kann man das abschalten? Ich nutze keine (Such-)Timer aus epghttpd.


    Beispiel:

    Code
    0:C-61441-10009-50043:2016-11-29:1908:2025:50:99:Star Trek - Das nächste Jahrhundert:epg2timer=Star Trek<epgd><timerid>3581</timerid></epgd>


    Lars.

  • Zitat


    Auxiliary data
    An arbitrary string that can be used by external applications to store any kind of data related to this timer. The string must not contain any newline characters. If this field is not empty, its contents will be written into the info file of the recording with the '@' tag.


    Dieses Feld darf jede Anwendung lesen und schreiben. Warum merkst du dir nicht einfach die hashwerte/CRCs o.ä. deiner Timer außerhalb der timers.conf?

  • Dieses Feld darf jede Anwendung lesen und schreiben.


    oder mach dir einen eigenen xml Tag rein den du sicher wiedererkennst.


    Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • Dieses Feld darf jede Anwendung lesen und schreiben.


    Natürlich. Ich hab aber erwartet, dass andere Plugins und Anwendungen dieses Feld in Ruhe lassen, wenn sie es nicht selbst gefüllt haben. Sonst taugt das Ding ja gar nicht, weil da jede Anwendung wieder alles löschen oder neu setzen kann. Somit wäre das Feld nutzlos.


    Warum merkst du dir nicht einfach die hashwerte/CRCs o.ä. deiner Timer außerhalb der timers.conf?


    Wenn andere Plugins/Anwendungen dann auch noch zusätzlich andere Werte im Timer ändern (was sie genauso dürfen wie beim Aux-Feld), helfen mir da keine Hashwerte. Ich würde den Timer nie wiedererkennen.
    Leider gibt es ja keine globale Timer-Id (z.B. eine UUID o.ä.) in der timers.conf. Dann wäre es kein Problem...


    oder mach dir einen eigenen xml Tag rein den du sicher wiedererkennst.


    XML finde ich zu gesprächig, ich brauche da nicht viel. :) Eigentlich nur den Namen meines Suchfilters, damit ich weiß, wie ich die Werte des Timers anpassen soll, wenn sich das Event ändert. Ich schreib da also z.B. "epg2timer=Star Trek" rein, mehr nicht.


    Aktuell behelfe ich mich mit einem Workaround speziell für epgd, indem ich alles nach und inklusive dem "<epgd>" abschneide. Schöner würde ich aber finden, wenn epg2vdr das Aux-Feld in Ruhe lassen würde, wenn es nicht mit "<epgd>" anfängt.


    Lars.

  • Zitat


    Natürlich. Ich hab aber erwartet, dass andere Plugins und Anwendungen dieses Feld in Ruhe lassen, wenn sie es nicht selbst gefüllt haben. Sonst taugt das Ding ja gar nicht, weil da jede Anwendung wieder alles löschen oder neu setzen kann. Somit wäre das Feld nutzlos.


    Genau diese Annahme wird jeder Autor eines Plugins oder externen Tools haben. Und am Ende funzt genau deswegen nix.

  • Schöner würde ich aber finden, wenn epg2vdr das Aux-Feld in Ruhe lassen würde, wenn es nicht mit "<epgd>" anfängt


    Und dann stellst du fest, dass es noch andere tools gibt..

  • Es gibt keine Vorschrift, wie die Daten im Aux-Feld formatiert sein sollen. Falls es nicht mit "epg2timer=" anfängt, lasse ich meine Finger davon, weil ich es nicht gefüllt habe. Ansonsten gehe ich davon aus, dass der Timer von meinem Plugin erstellt wurde und ich deshalb die Kontrolle darüber hab.


    Und wenn es noch andere Tools geben sollte, die da irgendwas eintragen, dann werde ich weitere Workarounds einbauen. Ich nutze da nur epg2vdr, also ist es mir erst mal egal...


    Lars.

  • mir ist das auch egal wie du so vorgehst, auch wenn ich irgendwie überrascht bin.


    Code
    1:S19.2E-133-13-127:2016-12-04:1041:1136:50:99:Navy CIS| L.A.~06x21 - 141. Schwarzes Gold:<epgsearch><channel>74 - 13th St HD</channel><searchtimer>Navy CIS</searchtimer><start>1480844460</start><stop>1480847760</stop><s-id>13</s-id><eventid>783212</eventid></epgsearch><epgd><timerid>1335</timerid></epgd>


    Man bemerke das es ein epgsearch Suchtimer ist und es zusätzlich einen epgd Eintrag dazu gibt.


    Wird dann relativ inkompatibel sein dein Plugin und die parallele Nutzung anderer Plugins ausschließen - aber wie gesagt, solang du dann dazu die Supportanfragen übernimmst solls mir egal sein...


    Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • epgsearch werde ich dann ja nicht mehr einsetzen... Mein Plugin soll es ersetzen, damit es mit vdr 2.3.x weitergehen kann.


    Sonst kenne ich keine Plugins oder Tools, die da noch was reinschreiben. Wer eins kennt, darf es natürlich gerne erwähnen. :)


    Lars

  • Irgendwann gibt es welche, EPG und Timer sind die Hauptthemen eines VDR.

  • Ich war eigentlich in erster Linie verwundert, dass andere Plugins einfach was hinten an das Aux-Feld anhängen. Wie kann man erwarten, dass dann alle anderen Plugins, die da was hinterlegen, damit umgehen können? Meiner Meinung nach sollte da nur derjenige was reinschreiben, der den Timer erstellt. Aber egal, ich komm schon damit zurecht, irgendwie.


    Lars

  • Zitat

    Wie kann man erwarten, dass dann alle anderen Plugins, die da was hinterlegen, damit umgehen können?


    Genau das ist der Kritikpunkt an deinem Ansatz. Du nimmst doch ebenso genau das an, in der Hoffnung es wären nur epgd und epgsearch.
    Wenn du darauf vertraust, wirst du später erneut Arbeit investieren müssen für workarounds. Eine bessere Lösung würde dir Arbeit ersparen in der Zukunft.

  • Da ich keine Kontrolle über andere Anwendungen habe, die evtl. irgendwann in der Zukunft das Aux-Feld der Timer nutzen, werde ich sowieso Arbeit investieren müssen. Es gibt ja keine Spezifikation für das Aux-Feld. Und ich vermute mal, es wird auch keine geben.


    Wenn mein Plugin einen Timer erstellt, dann schreibt es in das Aux-Feld den String "epg2timer=<Name des Filters>{". Ich kann dann einfach nur hoffen, dass andere Plugins/Anwendungen hinten etwas anhängen. Falls nicht, ist es auch kein größeres Problem. Der Timer wird dann von meinem Plugin eben nicht mehr aktuell gehalten, falls sich die Startzeit oder der Dateiname ändern sollte (ähnlich wie bei epgsearch kann man Platzhalter im Namen definieren).


    Wenn das Aux-Feld mit "epg2timer=" anfängt und ich dann einen Filter habe, der einen passenden Namen zum Rest bis zur ersten öffnenden geschweiften Klammer hat, dann ist das "mein" Timer und das Plugin aktualisiert ihn ggf.. Nach dem ersten Anlegen des Timers wird das Aux-Feld von meinem Plugin nicht mehr verändert.


    Genau das ist der Kritikpunkt an deinem Ansatz.


    Naja, ich behandle Timer mit einem Aux-Feld, welches nicht von meinem Plugin zu kommen scheint, ja auch mit Vorsicht, indem ich sie so lasse, wie sie sind. Das hätte ich jetzt auch von anderen Plugins erwartet. Aber "früher" gab's dieses Problem wohl einfach nicht bzw. es war den entsprechenden Autoren nicht so bewusst.


    Kennst du noch irgend welche anderen Plugins außer epgsearch und epg2vdr, die was im Aux-Feld hinterlegen?


    Lars.

  • Wer will, darf gerne mal reinschauen: https://github.com/flensrocker/vdr-plugin-epg2timer


    Das Dateiformat ist bisher nur in filterparser.h dokumentiert, es gibt auch noch kein automatisches Update und auch sonst tut das Plugin nicht viel (erst mal wird viel Arbeit in den Unterbau gesteckt). Man kann per SVDRP "plug epg2timer test /pfad/zu/datei" eine Filterdatei einlesen und dann legt das Plugin auch wild Timer an. Das sollte man also nur in einer Umgebung aufrufen, wo man hinterher die Timer wieder aufräumen kann. :)


    Ich bin für Anregungen offen, werde aber lange nicht so viele Features wie bei epgsearch einbauen. Das Ding soll einfach nur Timer anlegen und sie aktuell halten, falls die Sendungen sich verschieben. Außerdem soll für die Suche dann auch Serieninfos aus den EPG-Daten benutzt werden können (Zeilen in der Beschreibung wie "Staffel: 2", "Genre: Nachrichten" usw.).


    OSD gibt's noch gar nicht, das spare ich mir bis zum Schluss auf...


    Lars.

  • Wenn mein Plugin einen Timer erstellt, dann schreibt es in das Aux-Feld den String "epg2timer=<Name des Filters>{". Ich kann dann einfach nur hoffen, dass andere Plugins/Anwendungen hinten etwas anhängen.


    Warum schreibst Du nicht einfach <epg2timer>Name des Filters</epg2timer> ins aux?
    Dann suchst Du Dir raus, was zwischen Deinem öffnenden und schließenden Tag steht und ignorierst den Rest gepflegt. Ob das am Anfang oder am Ende des aux-Feldes stehst, ist ja eigentlich ziemlich egal.


    Sollen doch die anderen Plugins selber schauen, wie sie ihren eigenen Inhalt wiederfinden.


    Christian

  • Ob ich Pseudo-XML oder was anderes nutze, ist doch egal. Das kann genauso jemand verschwurbeln. Ist jetzt aber auch egal, das wird schon funktionieren.


    Lars.

  • Folgende Funktionen fände ich gut, wenn ich Wünsche äußern darf.


    Begrenzung der Kanalsuchbereichs
    Begrenzung der Uhrzeit (also suche Sendungen nur im Bereich zwischen 19:00-23:00)
    vermeide Wiederholung
    Serienaufnahme JA/NEIN Bei Serien Speicherung in der Form Verzeichnis Serie / (S01E01)-Titel
    Auswahl für Verzeichnis, in welches gespeichert werden soll.

    yavdr 0.61 testing SilverStone GD04S, Intel DH77EB, Intel G1610 CPU, 4GB RAM, Zotac Nvidia GTX-630 ,Corsair 4GB, Be quiet! BN140 System Power7, Samsung 830 SSD
    4 DVB-C Tuner L4M-Flex + Twin CT. Qnap TVS-873 per NFS als Aufnahmefreigabe.Per HDMI an Denon AVR-4300H/LG OLED 65B6D

  • Kanäle kann man schon einschränken, Uhrzeiten noch nicht.


    Wiederholungsvermeidung steht sehr weit unten auf der Liste.


    Dateinamen der Aufnahme kann man vorgeben, inkl. Staffelinfos.


    Lars

  • Lars, vielleicht solltest du den Titel des Threads ein wenig anpassen. Da die Unterhaltung sich jetzt breiter aufstellt oder einen neuen zum Plugin erstellen ;)

    Gruß utiltiy



    VDR Projekte VDR Projects

Jetzt mitmachen!

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