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["sday"]=t["day"]=strftime("%d", localtime(timeNow))
78 t["smonth"]=t["month"]=strftime("%m", localtime(timeNow))
79 t["syear"]=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))
88 if p != "sRef" and param[p] != None:
91 if key == "smin" or key == "emin" :
94 elif key == "shour" or key == "ehour":
97 elif key == "day" or key == "sday":
100 elif key == "month" or key == "smonth":
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 serviceListOne(self, bouquet, selref):
221 ref = eServiceReference(bouquet)
222 self.servicelist = ServiceList(ref, command_func = self.getServiceList, validate_commands=False)
223 self.servicelist.setRoot(ref)
225 for (ref2, name) in self.servicelist.getServicesAsList():
226 print "ref2: (",ref2, ") name: (",name,")"
228 returnListPart.append(name)
229 returnListPart.append(ref2)
230 if ref2 == str(selref):
231 returnListPart.append("selected")
234 returnListPart.append("")
235 returnList.append(returnListPart)
238 def serviceList(self,param):
239 print "serviceList: ",param
240 sRef = str(param["sRef"])
241 bouquet = str(param["bouquet"])
246 bouquet = '1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "bouquets.tv" ORDER BY bouquet'
247 ref = eServiceReference(bouquet)
248 self.servicelist = ServiceList(ref, command_func = self.getServiceList, validate_commands=False)
249 self.servicelist.setRoot(ref)
250 for (ref2, name) in self.servicelist.getServicesAsList():
251 part = self.serviceListOne(ref2, sRef)
253 returnList = returnList + [["-- "+name+" --", "<"+name+">", ""]] + part
254 bouquet = '1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "bouquets.radio" ORDER BY bouquet'
255 ref = eServiceReference(bouquet)
256 self.servicelist = ServiceList(ref, command_func = self.getServiceList, validate_commands=False)
257 self.servicelist.setRoot(ref)
258 for (ref2, name) in self.servicelist.getServicesAsList():
259 part = self.serviceListOne(ref2, sRef)
261 returnList = returnList + [["-- "+name+" --", "<"+name+">", ""]] + part
263 returnList = self.serviceListOne(bouquet, sRef)
265 if self.sRefFound == 0 and sRef != '':
266 returnListPart = ["Inserted", sRef, "selected"]
267 returnList = [returnListPart] + returnList
271 def getServiceList(self, ref):
272 self.servicelist.root = ref
274 def locationList(self,param):
275 print "locationList",param
277 lst = config.movielist.videodirs.value
279 dirname = "/hdd/movie/"
280 if not dirname in lst:
281 lst = [dirname] + lst
282 returnList = [[lst[i], i, dirname == lst[i] and "selected" or ""] for i in range(len(lst))]
285 def tagList(self,param):
286 print "tagList",param
289 file = open("/etc/enigma2/movietags")
290 taglist = [x.rstrip() for x in file.readlines()]
296 if not tag in taglist:
297 taglist = [tag]+taglist
298 if not "" in taglist:
300 returnList = [[taglist[i], i, tag == taglist[i] and "selected" or ""] for i in range(len(taglist))]
303 def fillOptionList(self,param):
304 print "fillOptionList",param
306 if param.has_key("justplay"):
307 number = param["justplay"] or 0
309 returnList.append(["Record",0,number==0 and "selected" or ""])
310 returnList.append(["Zap",1,number==1 and "selected" or ""])
311 elif param.has_key("afterevent"):
312 number = param["afterevent"] or 0
314 returnList.append(["Nothing",0,number==0 and "selected" or ""])
315 returnList.append(["Standby",1,number==1 and "selected" or ""])
316 returnList.append(["Deepstandby/Shutdown",2,number==2 and "selected" or ""])
317 returnList.append(["Auto",3,number==3 and "selected" or ""])
320 def deleteOldSaved(self,param):
321 print "deleteOldSaved",param
323 returnList.append(["deleteOldOnSave",param["deleteOldOnSave"],""])
324 returnList.append(["command",param["command"],""])
325 if int(param["deleteOldOnSave"]) == 1:
326 returnList.append(["channelOld",param["sRef"],""])
327 returnList.append(["beginOld",param["begin"],""])
328 returnList.append(["endOld",param["end"],""])
332 def fillValue(self,param):
333 print "fillValue: ",param
334 return [["",param,""]]
337 (result,text) = self.result
340 def filterXML(self, item):
341 item = item.replace("&", "&").replace("<", "<").replace('"', '"').replace(">", ">")
347 text = property(getText)
348 list = property(getList)