def updateInfos(self):
self.resetExitTimer()
# update data
current = ServiceReference(self.servicelist.getCurrentSelection())
num = str(self.servicelist.getCurrentSelection().getChannelNum())
self["NowChannel"].setText(current.getServiceName())
self["NowNum"].setText(num)
nowepg, nowstart, nowend, nowname, nowduration, percentnow = self.getEPGNowNext(current.ref,0)
nextepg, nextstart, nextend, nextname, nextduration, percentnext = self.getEPGNowNext(current.ref,1)
self["NowEventStart"].setText(nowstart)
self["NextEventStart"].setText(nextstart)
self["NowEventEnd"].setText(nowend)
self["NextEventEnd"].setText(nextend)
self["NowEventTitle"].setText(nowname)
self["NextEventTitle"].setText(nextname)
self["NowEPG"].setText(nowepg) # Only for backward compatibility
self["NextEPG"].setText(nextepg) # Only for backward compatibility
self["NowTime"].setText(nowduration) # Only for backward compatibility
self["NextTime"].setText(nextduration) # Only for backward compatibility
self["NowDuration"].setText(nowduration)
self["NextDuration"].setText(nextduration)
self["vzProgress"].setValue(percentnow)
def getEPGNowNext(self, ref, modus):
# get now || next event
if self.epgcache is not None:
event = self.epgcache.lookupEvent(['IBDCT', (ref.toString(), modus, -1)])
if event:
if event[0][4]:
t = localtime(event[0][1])
begin = event[0][1]
duration = event[0][2]
now = int(time())
if modus == 0:
eventduration =_("+%d min") % (((event[0][1] + duration) - time()) / 60)
percent = int((now - begin) * 100 / duration)
eventname = event[0][4]
eventstart = strftime("%H:%M", localtime(begin))
eventend = strftime("%H:%M", localtime(begin + duration))
eventtimename = ("%02d:%02d %s") % (t[3],t[4], event[0][4])
elif modus == 1:
eventduration =_("%d min") % (duration / 60)
percent = 0
eventname = event[0][4]
eventstart = strftime("%H:%M", localtime(begin))
eventend = strftime("%H:%M", localtime(begin + duration))
eventtimename = ("%02d:%02d %s") % (t[3],t[4], event[0][4])
return eventtimename, eventstart, eventend, eventname, eventduration, percent