add basic timer add support
authorRico Schulte <ricoschulte@users.schwerkraft.elitedvb.net>
Wed, 17 Jan 2007 01:36:44 +0000 (01:36 +0000)
committerRico Schulte <ricoschulte@users.schwerkraft.elitedvb.net>
Wed, 17 Jan 2007 01:36:44 +0000 (01:36 +0000)
-add with manuell with proper values
-add with serviceref and eventid

webinterface/src/WebComponents/Sources/Timer.py
webinterface/src/web/timeradd.xml [new file with mode: 0644]
webinterface/src/web/timeraddbyeventid.xml [new file with mode: 0644]
webinterface/src/webif.py

index 1be6684..c0f3d1a 100644 (file)
 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:
@@ -50,7 +146,7 @@ class Timer( Source):
             timerlist.append(timer) 
             
         return timerlist
-        
+    
     list = property(command)
     lut = {"ServiceReference": 0
            ,"ServiceName": 1
diff --git a/webinterface/src/web/timeradd.xml b/webinterface/src/web/timeradd.xml
new file mode 100644 (file)
index 0000000..657fa6e
--- /dev/null
@@ -0,0 +1,5 @@
+<e2:screen name="TestScreen">
+<e2:element source="TimerAdd" id="serviceref,begin,end,name,description,eit,disabled,justplay,afterevent">
+<e2:convert type="web:TextToHTML" />
+</e2:element>
+</e2:screen>
\ No newline at end of file
diff --git a/webinterface/src/web/timeraddbyeventid.xml b/webinterface/src/web/timeraddbyeventid.xml
new file mode 100644 (file)
index 0000000..1fb322f
--- /dev/null
@@ -0,0 +1,5 @@
+<e2:screen name="TestScreen">
+<e2:element source="TimerAddEventID" id="serviceref,eventid">
+       <e2:convert type="web:TextToHTML" />
+</e2:element>
+</e2:screen>
\ No newline at end of file
index c54f8cd..2c8d52a 100644 (file)
@@ -58,7 +58,9 @@ class TestScreen(InfoBarServiceName, InfoBarEvent,InfoBarTuner, WebScreen):
                self["EPGTITLE"] = EPG(session,func=EPG.TITLE)
                self["EPGSERVICE"] = EPG(session,func=EPG.SERVICE)
                self["EPGNOW"] = EPG(session,func=EPG.NOW)
-               self["TimerList"] = Timer(session)
+               self["TimerList"] = Timer(session,func = Timer.LIST)
+               self["TimerAddEventID"] = Timer(session,func = Timer.ADDBYID)
+               self["TimerAdd"] = Timer(session,func = Timer.ADD)
                self["MovieList"] = Movie(session)
                self["Volume"] = Volume(session)