eEPGCache Interface

  • So sucht er das nächste Event:

    ookupEventTime(service, -1, 1)


    Man kann aber auch gezielt ein Zeit abfragen:

    lookupEventTime(service, primeTime)


    Mehrere Events geht so:

    test = ['XBT', (service.toString(), -1, BeginTime,24*60) ]

    epglist = self.eEPGCache.lookupEvent(test)


    in der epglist sind dann alle events enthalten.

    Hier nur beispielhaft (die Ergniszuordnung muss nicht stimmen)

    Code
    for event in epglist:
        service=event[0]
        sname=event[1]
        ...

    Was da in den Einzelwerten enthalten ist, musst du dann mal sehen.


    Zu den Buchstaben XBT hatte ich mal diese Liste aufgehoben:

    #List of all epgcache-Parameters

    #I = Event Id, B = Event Begin Time, D = Event Duration, T = Event Title

    #S = Event Short Description, E = Event Extended Description, C = Current Time

    #R = Service Reference String, N = Service Name, n = Short Service Name

    #X = Return a minimum of one tuple per service in the result list... even when no event was found.

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • alpha

    Changed the title of the thread from “eEPGCache Interfache” to “eEPGCache Interface”.
  • es funktioniert :)

    ein paar kleine anmerkungen, falls es mal einer nachvollziehen will:

    Mehrere Events geht so:

    test = ['XBT', (service.toString(), -1, BeginTime,24*60) ]

    epglist = self.eEPGCache.lookupEvent(test)

    sollte heissen: test = ['XBT', (service.toString(), -1, BeginTime, BeginTime + 24*60*60) ]


    Hier nur beispielhaft (die Ergniszuordnung muss nicht stimmen)

    die reihenfolge in den tuples ist wie im "XBT" string angegeben.

    danke nochmal... hat mir sehr geholfen.


    noch was:

    da ich fuer die skin components keine tuples sondern eServiceEvent objekte brauche, die eServiceEvent aber in enigma2 ist... habe ich mir eine kleine ServiceEvent klasse gebastelt:

  • ...

    ein paar kleine anmerkungen, falls es mal einer nachvollziehen will:

    sollte heissen: test = ['XBT', (service.toString(), -1, BeginTime, BeginTime + 24*60*60) ]

    ...

    mein konkretes Beispiel sah so aus und funktioniert auch ;)

    test = ['XBT', (service.toString(), -1, event.getBeginTime() + event.getDuration(),24*60) ]


    für den Normalgebrauch wäre es dann wohl so richtig:

    test = ['XBT', (service.toString(), 0, BeginTime, Duration) ]

    Die Duration wird dabei in Minuten übergeben.


    Kannst es ja nochmal gegenprüfen.

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

    Edited once, last by Sven H ().

  • In deinem Beispiel hattest du 24*60*60

    ja, dachte das muesste in sekunden, weil ja die time auch in sekunden angeben wird.


    hab gerade getestet...

    test = ['XBT', (service.toString(), 0, BeginTime, Duration) ]

    mit duration in minuten scheint auch zu funktionieren.


    ich verwende das uebrigens in meinem permanent timeshift plugin, damit immer die richtige sendung angezeigt wird, je nachdem wo man sich gerade befindet.