3 from Components.Sources.Source import Source
4 from Components.Sources.ServiceList import ServiceList
5 from Components.config import config
6 from enigma import eServiceReference
9 from time import strftime, localtime, time
11 class WAPfunctions( Source):
26 def __init__(self, session,func = LISTTIME):
29 self.session = session
30 self.result = ["unknown command (%s)" % self.func]
32 def handleCommand(self,cmd):
33 print "WAPfunctions: handleCommand", cmd
34 if self.func is self.LISTTIME:
35 self.result = self.fillListTime(cmd)
36 elif self.func is self.REPEATED:
37 self.result = self.fillRepeated(cmd)
38 elif self.func is self.SERVICELIST:
39 self.result = self.serviceList(cmd)
40 elif self.func is self.OPTIONLIST:
41 self.result = self.fillOptionList(cmd)
42 elif self.func is self.FILLVALUE:
43 self.result = self.fillValue(cmd)
44 elif self.func is self.LOCATIONLIST:
45 self.result = self.locationList(cmd)
46 elif self.func is self.TAGLIST:
47 self.result = self.tagList(cmd)
48 elif self.func is self.DELETEOLD:
49 self.result = self.deleteOldSaved(cmd)
51 self.result = ["unknown command cmd(%s) self.func(%s)" % (cmd, self.func)]
53 def fillListTime(self,param):
54 print "fillListTime",param
61 timePlusTwo = timeNow + 7200
63 if param.has_key('begin'):
64 begin = param['begin'] or 0
69 if param.has_key('end'):
70 end = param['end'] or 0
77 t["day"]=strftime("%d", localtime(timeNow))
78 t["month"]=strftime("%m", localtime(timeNow))
79 t["year"]=strftime("%Y", localtime(timeNow))
80 t["smin"]=strftime("%M", localtime(timeNow))
81 t["shour"]=strftime("%H", localtime(timeNow))
82 t["emin"]=strftime("%M", localtime(timePlusTwo))
83 t["ehour"]=strftime("%H", localtime(timePlusTwo))
91 if key == "smin" or key == "emin" :
94 elif key == "shour" or key == "ehour":
107 if param[key] == "now" or param[key] == "end" or param[key] == "begin":
110 input = param[key] or 0
113 self.result = self.fillOptionListAny(input,start,end)
116 def fillOptionListAny(self,input,start,end):
118 for i in range(start,end+1,1):
123 returnList1.append(j)
124 returnList1.append(i)
126 returnList1.append("selected")
128 returnList1.append("")
129 returnList.append(returnList1)
132 def fillRepeated(self,param):
133 print "fillRepeated",param
134 repeated = param or 0
135 repeated = int(repeated)
143 mo = ["mo", 1, "Mo "]#"Monday"]
144 tu = ["tu", 2, "Tu "]#"Tuesday"]
145 we = ["we", 4, "We "]#"Wednesday"]
146 th = ["th", 8, "Th "]#"Thursday"]
147 fr = ["fr", 16, "Fr "]#"Friday"]
148 sa = ["sa", 32, "Sa "]#"Saturday"]
149 su = ["su", 64, "Su "]#"Sunday"]
150 mf = ["mf", 31, "Mo-Fr"]
151 ms = ["ms", 127, "Mo-Su"]
154 repeated = repeated - 127
160 repeated = repeated - 64
166 repeated = repeated - 32
172 repeated = repeated - 31
178 repeated = repeated - 16
184 repeated = repeated - 8
190 repeated = repeated - 4
196 repeated = repeated - 2
202 repeated = repeated - 1
208 returnList.append(mo)
209 returnList.append(tu)
210 returnList.append(we)
211 returnList.append(th)
212 returnList.append(fr)
213 returnList.append(sa)
214 returnList.append(su)
215 returnList.append(mf)
216 returnList.append(ms)
220 def serviceList(self,param):
221 print "serviceList: ",param
222 sRef = str(param["sRef"])
223 bouquet = str(param["bouquet"])
228 bouquet = '1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet'
229 ref = eServiceReference(bouquet)
230 self.servicelist = ServiceList(ref, command_func = self.getServiceList, validate_commands=False)
231 self.servicelist.setRoot(ref)
232 for (ref2, name) in self.servicelist.getServicesAsList():
233 print "ref2: (",ref2, ") name: (",name,")"
235 returnListPart.append(name)
236 returnListPart.append(ref2)
237 if ref2 == str(sRef):
238 returnListPart.append("selected")
241 returnListPart.append("")
242 returnList.append(returnListPart)
244 if sRefFound == 0 and sRef != '':
245 returnListPart = ["Inserted", sRef, "selected"]
246 returnList.append(returnListPart)
250 def getServiceList(self, ref):
251 self.servicelist.root = ref
253 def locationList(self,param):
254 print "locationList",param
256 lst = config.movielist.videodirs.value
258 dirname = "/hdd/movie/"
259 if not dirname in lst:
260 lst = [dirname] + lst
261 returnList = [[lst[i], i, dirname == lst[i] and "selected" or ""] for i in range(len(lst))]
264 def tagList(self,param):
265 print "tagList",param
268 file = open("/etc/enigma2/movietags")
269 taglist = [x.rstrip() for x in file.readlines()]
275 if not tag in taglist:
276 taglist = [tag]+taglist
277 if not "" in taglist:
279 returnList = [[taglist[i], i, tag == taglist[i] and "selected" or ""] for i in range(len(taglist))]
282 def fillOptionList(self,param):
283 print "fillOptionList",param
285 if param.has_key("justplay"):
286 number = param["justplay"] or 0
288 returnList.append(["Record",0,number==0 and "selected" or ""])
289 returnList.append(["Zap",1,number==1 and "selected" or ""])
290 elif param.has_key("afterevent"):
291 number = param["afterevent"] or 0
293 returnList.append(["Nothing",0,number==0 and "selected" or ""])
294 returnList.append(["Standby",1,number==1 and "selected" or ""])
295 returnList.append(["Deepstandby/Shutdown",2,number==2 and "selected" or ""])
296 returnList.append(["Auto",3,number==3 and "selected" or ""])
299 def deleteOldSaved(self,param):
300 print "deleteOldSaved",param
302 returnList.append(["deleteOldOnSave",param["deleteOldOnSave"],""])
303 returnList.append(["command",param["command"],""])
304 if int(param["deleteOldOnSave"]) == 1:
305 returnList.append(["channelOld",param["sRef"],""])
306 returnList.append(["beginOld",param["begin"],""])
307 returnList.append(["endOld",param["end"],""])
311 def fillValue(self,param):
312 print "fillValue: ",param
313 return [["",param,""]]
316 (result,text) = self.result
319 def filterXML(self, item):
320 item = item.replace("&", "&").replace("<", "<").replace('"', '"').replace(">", ">")
326 text = property(getText)
327 list = property(getList)