Eigene Eintraege in den EPG schreiben

  • Es gibt wohl mit CrossEPG ein Plugin, welches (angeblich) durch einen Patch in Enigma2 in der Lage ist,
    EPG Eintraege im laufenden Betrieb einzufuegen. Dieser Patch soll im OE 2.0 bereits fest integriert sein.


    Fuer den Fall, dass dies so ist, gibt es einen Beispielcode (Plugin) an dem man nachvollziehen kann, was
    man machen muesste, um zur Laufzeit von Enigma2 einen EPG Eintrag fuer einen bestimmten Sender
    hinzuzufuegen?


    Hintergrund der Frage: Ich wuerde gern ein Plugin entwickeln, welches die Daten von RadioTimes, die
    fuer nicht-kommerzielle Zwecke frei verfuegbar sind, einliest und in den EPG meiner Dreambox einfuegt.
    Warum ich nicht CrossEPG nehem? Es liegt nicht auf dem DMM Feed und ich moechte keine Plugins aus
    fremden Quellen verwenden.

    DM900 SS, DM8000SSSS
    Kein Support per PN! Nutzt das Forum zum Fragen, dann haben auch andere etwas davon.

  • eine oft verwendete "resource" von crossepg sind xml-dateien


    die werden von webseiten "gegrabbed" und in eine xml eingetragen,
    die xml wird dan auf servern abgelegt


    und im crossepg kann man die "resource" dann wählen (mit link auf dem server)
    xml wird regelmässig übers inet runtergeladen
    und dann wird die xml im epg geladen


    so im kurzen,
    brauchst also ein tool um xml-datein von die daten herzustellen


    die "resource" ist nur ein par textzeilen


    im ihad hab ich mal gepostet wie mann selbst basteln kann
    thread: http://www.i-have-a-dreambox.c…thread.php?postid=1531464
    und http://www.i-have-a-dreambox.c…ostid=1437880#post1437880

  • Das hilft mir leider nicht weiter, da ich dann ja CrossEpg auf meiner Box braeuchte.
    DAS will ich aber nicht, da es nicht Teil des DMM Feeds ist und ich nur ein Release-
    Image auf der Box haben moechte.
    Leider habe ich im Python-Teil von CrossEpg keinen Hinweis gefunden, wie man das
    Laden eines EPG-Eintrags in den DM-eigenen EPG-Cache bewerkstelligt. Das scheint
    entweder im C-Teil zu sein, oder laeuft ueberhaupt nicht zur Laufzeit von Enigma2
    ab.
    Das Lesen der RadioTimes Daten und die Aufbereitung in Python war nur eine Finger-
    uebung. Das Erzeugen des EPG-Eintrags ist mein Problem.


    Es bleibt also meine Frage: Wie fuege ich in einem Enigma2-Python-Plugin KORREKT
    einen EPG-Eintrag in den EPG-Cache ein?

    DM900 SS, DM8000SSSS
    Kein Support per PN! Nutzt das Forum zum Fragen, dann haben auch andere etwas davon.

  • Verstehe ich nicht, crossepg läuft schon jahre super auf meine box


    Du darfst 2 alte probleme mit crossepg nicht betrachten
    1. Eine weile war es nicht möglich crossepg zu verwenden weil der patch nicht mehr im closed E2 eingespielt werden konnte, da hatt DMM aber E2 dann direkt gefixt


    2. Im OE2 gab es eine weile probleme mit swap, und ohne swap gibt es mit viel (cross)epg-daten Ram-probleme


    Hatt aber nichts mit dem plugin zu tun.


    Und ich glaube crossepg ist auf sourceforce, bin mir aber nicht sicher

    • Offizieller Beitrag

    Hi,


    grob gesagt musst Du eine eigene epg.dat bauen.. diese kann man dann einfach zusätzlich laden...


    Dazu muss man allerdings die Daten exakt so aufbereiten, wie sie in der epg.data auch drinn stehen. Und das ist schon aufwendig.


    Die "alten" e2 sourcen sollten eigentlich noch irgendwo rumfliegen wo man den Aufbau der epg.dat sich anschauen kann. Diese hat sich seit der c++ teil closed ist nicht mehr geändert... also der Aufbau nicht.. aus kompatibilität zu cross epg und co...


    cu

  • Also gibt es keine Moeglichkeit, "einfach" ein Python Objekt zu erstellen, mit
    Daten fuer einen EPG-Eintrag zu bestuecken und dann dieses Objekt einer
    Enigma2-Schnittstelle zu uebergeben und damit laeuft das dann intern in den
    EPG-Cache?
    Naiverweise hatte ich mir das so vorgestellt. :winking_face:


    Den Code fuer die Aufbereitung einer epg.dat habe ich im CrossEpg Code gefunden,
    aber keinen Code, der irgendetwas in der Richtung in Python gemacht haette und
    war deshalb der Meinung, dass CrossEpg nur "ausserhalb" von Enigma2 funktioniert.


    Zu meinem Verstaendnis:
    Ich muesste in Python eine Datei erzeugen, die im Aufbau einer epg.dat entspricht,
    dort die EPG-Eintraege hinterlegen und dann (zur Laufzeit von Enigma2) eine
    Python-Methode aufrufen, um diese epg.dat in den aktuellen EPG-Cache von Enigma2
    laden zu lassen.
    Welche Methode muss ich in Python dann zum Laden meiner eigenen epg.dat aufrufen?

    DM900 SS, DM8000SSSS
    Kein Support per PN! Nutzt das Forum zum Fragen, dann haben auch andere etwas davon.

  • CrossEpg -> nicht auf dem DMM Feed -> manuelle Pflege -> Anpassungen zur
    Kompatibilitaet nicht in meiner Hand, da zu komplex und zu hoher Aufwand
    zur eigenen Einarbeitung in den Code -> nicht mein Ding.


    Ich moechte "nur" die Daten von RadioTimes fuer genau die Sender, die mich
    interessieren, in den EPG-Cache einfuegen. Das koennte mit CrossEpg auch
    gehen, wenn ich selbst die XML-Dateien erzeuge, die CrossEpg einlesen soll,
    aber dann gilt halt die Kette, die ich oben aufgezeigt habe.


    Die Loesung, die mir vorschwebte, sah etwa so aus:
    Plugin laedt auf Anforderung die Daten von RadioTimes ein und erzeugt in
    einem Hintergrund-Thread die EPG-Eintraege und uebergibt sie Enigma2.
    Die "Aufforderung" sollte sowohl im Info-Menue des Senders aufrufbar sein,
    als auch beim Start von Enigma2 (aehnlich EPG-Refresh).
    Konfigurierbar sollte dabei sein, wieviel Tage der EPG aktualisiert werden
    soll und ob bei jedem Start oder nur alle x Tage eine ganze Liste an Sendern
    abgearbeitet werden soll.
    Ich haette es als Nutzer also in der Hand, ob ich immer jederzeit die kompletten
    EPG-Eintraege zur Verfuegung habe, oder ob ich sie nur fuer einen Sender fuer
    die naechsten X Tage haben will.
    (Dies ist die Beschreibung, wie ich es gerne implementieren will; d.h. NICHT,
    dass es nicht so auch mit CrossEpg gehen koennte, wenn man sich genug Muehe
    fuer die Konfiguration gibt).

    DM900 SS, DM8000SSSS
    Kein Support per PN! Nutzt das Forum zum Fragen, dann haben auch andere etwas davon.

  • ich kannmir nur wiederholen, du machst dir wegen crossepg unnötig sorgen


    und die 2 probleme die ich geschildert habe,
    die hättest du auch mit deine lösung erlebt :winking_face:


    mach jetzt das crossepg drauf :grinning_squinting_face:


    EDIT
    weil was du willst kannst du zu 95% mit crossepg
    auch da kannst du manuel anstossen - alle eingestellten resourcen oder eine separat
    oder automatisch mit ein bestimmten interval

  • Hmm, es scheint fuer mich zu schwer zu sein, es klar und deutlich zu auszudruecken,
    dass auf die betreffende Box NUR und AUSSCHLIESSLICH NUR Plugins draufkommen,
    die entweder auf dem Feed von DMM liegen, oder die ich selbst gebaut habe.
    Das gilt auch fuer jegliche andere Software auf der Box. Von DMM oder von mir oder
    garnicht.
    Wenn DMM CrossEpg auf den Feed legt, werde ich es probieren, ansonsten will ich
    es dann lieber selbst machen.


    Diese Fragen bleiben:
    Muss das so sein mit der extra epg.dat Datei oder kann man auch per Python API
    einen Eintrag (oder eine Liste von Eintraegen) hinzufuegen?
    Irgendwie muss es die Box beim Aufschalten auf einen Kanal doch auch machen
    oder wird da immer erst eine komplette epg.dat Struktur erzeugt und dann geladen?
    Wie lautet der Python Befehl, um die "eigene" epg.dat laden zu lassen?

    DM900 SS, DM8000SSSS
    Kein Support per PN! Nutzt das Forum zum Fragen, dann haben auch andere etwas davon.

  • OK, nur verstehe ich das nicht
    mache auch nicht jedes plugin so mal auf die box, achte auch schon drauf was ich installiere,
    es gibt aber auch sachen die nicht auf dem DMM feed liegen und gut sind


    daher


    aber wenn du das so schafst, kein thema



    in soweit das ich das verfolgt habe brauchst du die extra.epg.dat
    und beim zappen ist das anders, da wird direct im RAM geladen, nicht über eine datei
    wegen befehlt, denn kenne ich nicht, aber schau mal im crossepg-plugin da gibt es auch die möglichkeit um die epg.dat manuel zu "reloaden" während die E2 läuft