noch ne frage: gibt es irgendwo ne beschreibung des eEPGCache interfaces.
suche gerade info, was die 0en, 1en und -1en bei lookupEventTime bedeuten.
danke.
noch ne frage: gibt es irgendwo ne beschreibung des eEPGCache interfaces.
suche gerade info, was die 0en, 1en und -1en bei lookupEventTime bedeuten.
danke.
also
lookupEventTime(service_ref, -1, 0) gibt die aktuelle sendung zurueck.
ich suche eher nach allen sendungen der naechsten 24 stunden oder so... oder alle vorhandenen des senders...
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)
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.
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:
class ServiceEvent():
def __init__(self, start, duration, name):
logger.info("start: %s, duration: %s, name: %s", start, duration, name)
self.start = start
self.duration = duration
self.name = name
def getBeginTime(self):
return self.start
def getDuration(self):
return self.duration
def getEventId(self):
return 0
def getEventName(self):
return self.name
def getShortDescription(self):
return ""
def getExtendedDescription(self, _original=False):
return ""
def getBeginTimeString(self):
return ""
Alles anzeigen
...
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.
yep, vielleicht funtionert beides, oder ich bekomme jetzt alle events zurueck, weil die dauer elend lang ist.
Du darfst dann wohl auch nur 24*60 (die nächsten 24h) nutzen.
In deinem Beispiel hattest du 24*60*60.
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.