1 from Components.Sources.Source import Source
2 from Components.Sources.ServiceList import ServiceList
3 from enigma import eServiceReference
5 class ServiceListRecursive( Source ):
8 def __init__(self, session, func = FETCH):
11 self.session = session
15 self.command = eServiceReference('1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 195) || (type == 25) FROM BOUQUET "bouquets.tv" ORDER BY bouquet')
17 def handleCommand(self,cmd):
18 self.command = eServiceReference(cmd)
21 if self.func == self.FETCH:
26 return func(self.command)
28 def buildList(self, ref):
29 self.servicelist = ServiceList(ref, command_func = self.getServiceList, validate_commands=False)
30 list = self.servicelist.getServicesAsList()
31 for index in range(len(list)):
34 self.servicelist.setRoot(eServiceReference(item[0]))
35 sub = self.servicelist.getServicesAsList()
38 # list[index] = ( item[0] , item[1], sub )
39 self.xml += "\t<e2bouquet>\n"
43 for (ref, name) in sub:
44 subxml += "\t\t\t<e2service>\n"
45 subxml += "\t\t\t\t<e2servicereference>%s</e2servicereference>\n\t\t\t\t<e2servicename>%s</e2servicename>\n" %(self.filterXML(ref), self.filterXML(name))
46 subxml += "\t\t\t</e2service>\n"
49 self.xml += "\t\t<e2service>\n"
52 self.xml += "\t\t<e2servicereference>%s</e2servicereference>\n\t\t<e2servicename>%s</e2servicename>\n" %(self.filterXML(item[0]), self.filterXML(item[1]))
55 self.xml += "\t\t<e2servicelist>\n"
57 self.xml += "\t\t</e2servicelist>\n"
58 self.xml += "\t</e2bouquet>\n"
60 self.xml += "\t</e2service>\n"
64 def filterXML(self, item):
65 item = item.replace("&", "&").replace("<", "<").replace('"', '"').replace(">", ">")
68 def getServiceList(self, ref):
69 self.servicelist.root = ref
71 text = property(do_func)
73 # list = property(do_func)
74 # lut = {"ServiceReference": 0, "ServiceName": 1 }