from enigma import *
+from enigma import eServiceReference
from Components.Sources.Source import Source
from ServiceReference import ServiceReference
-from enigma import eServiceReference
+from RecordTimer import RecordTimerEntry, RecordTimer, AFTEREVENT,parseEvent
+
+import time
+
class Timer( Source):
-
- def __init__(self, session):
- #self.func = func
+ LIST = 0
+ ADDBYID = 1
+ ADD = 2
+ def __init__(self, session,func = LIST):
+ self.func = func
Source.__init__(self)
self.session = session
self.recordtimer = session.nav.RecordTimer
-# def handleCommand(self,cmd):
-# self.command = cmd
+ def handleCommand(self,cmd):
+ print "Timer.handleCommand()",cmd
+ if self.func is self.ADDBYID:
+ self.resultText = self.addTimerByEventID(cmd)
+ elif self.func is self.ADD:
+ self.resultText = self.addTimer(cmd)
+ else:
+ self.resultText = "unknown command"
+
+ def addTimer(self,param):
+ # is there an easier and better way? :\
+ print "addTimerByEventID",param
+ if param['serviceref'] is None:
+ return "ServiceReference missing"
+ else:
+ serviceref = ServiceReference(param['serviceref'])
+
+ if param['begin'] is None:
+ return "begin missing"
+ elif time.time() <= float(param['begin']):
+ begin = float(param['begin'])
+ else:
+ return "incorrect time begin"
+
+
+ if param['end'] is None:
+ return "end missing"
+ elif begin < float(param['end']):
+ end = float(param['end'])
+ else:
+ return "incorrect time end"
+
+ if param['name'] is None:
+ return "name is missing"
+ else:
+ name = param['name']
+
+ if param['description'] is not None:
+ description = param['description']
+ else:
+ description = ""
+
+ if param['disabled'] =="0":
+ disabled = False
+ elif param['disabled'] =="1":
+ disabled = True
+ else:
+ return "disabled incorrect"
+
+ if param['disabled'] == "0":
+ disabled = False
+ elif param['disabled'] == "1":
+ disabled = True
+ else:
+ return "disabled incorrect"
+
+ if param['justplay'] == "0":
+ justplay = False
+ elif param['justplay'] == "1":
+ justplay = True
+ else:
+ return "justplay incorrect"
+
+ if param['afterevent'] == "0":
+ afterevent = 0
+ elif param['afterevent'] == "1":
+ afterevent = 1
+ elif param['afterevent'] == "2":
+ afterevent = 2
+ else:
+ return "afterevent incorrect"
+
+ newtimer = RecordTimerEntry(serviceref, begin, end, name, description, 0, disabled, justplay, afterevent)
+ self.session.nav.RecordTimer.record(newtimer)
+ #self.session.nav.RecordTimer.saveTimer()
+ return "Timer added"
+ def addTimerByEventID(self,param):
+ print "addTimerByEventID",param['serviceref'],param['eventid']
+ epgcache = eEPGCache.getInstance()
+ event = epgcache.lookupEventId(eServiceReference(param['serviceref']),int(param['eventid']))
+ if event is None:
+ return "Eventid not found"
+ (begin, end, name, description, eit) =parseEvent(event)
+ newtimer = RecordTimerEntry(ServiceReference(param['serviceref']), begin, end, name, description, eit, False, False, 0)
+ self.session.nav.RecordTimer.record(newtimer)
+ return "Timer added"
+
+ def getText(self):
+ return self.resultText
+
+ text = property(getText)
+ ## part for listfiller requests
def command(self):
timerlist = []
for item in self.recordtimer.timer_list+self.recordtimer.processed_timers:
timerlist.append(timer)
return timerlist
-
+
list = property(command)
lut = {"ServiceReference": 0
,"ServiceName": 1