tags = tags
))
-def writeConfig(filename, defaultTimer, timers):
+def buildConfig(defaultTimer, timers, webif = False):
# Generate List in RAM
list = ['<?xml version="1.0" ?>\n<autotimer version="', CURRENT_CONFIG_VERSION, '">\n\n']
# Close still opened defaults tag
list.append('>\n')
- # Services
- for serviceref in defaultTimer.services:
- list.extend((' <serviceref>', serviceref, '</serviceref>'))
- ref = ServiceReference(str(serviceref))
- list.extend((' <!-- ', stringToXML(ref.getServiceName().replace('\xc2\x86', '').replace('\xc2\x87', '')), ' -->\n'))
+ if webif:
+ # Services + Bouquets
+ for serviceref in defaultTimer.services + defaultTimer.bouquets:
+ ref = ServiceReference(str(serviceref))
+ list.extend((
+ ' <e2service>\n',
+ ' <e2servicereference>', str(serviceref), '</e2servicereference>\n',
+ ' <e2servicename>', stringToXML(ref.getServiceName().replace('\xc2\x86', '').replace('\xc2\x87', '')), '</e2servicename>\n',
+ ' </e2service>\n',
+ ))
+ else:
+ # Services
+ for serviceref in defaultTimer.services:
+ ref = ServiceReference(str(serviceref))
+ list.extend((' <serviceref>', serviceref, '</serviceref>',
+ ' <!-- ', stringToXML(ref.getServiceName().replace('\xc2\x86', '').replace('\xc2\x87', '')), ' -->\n',
+ ))
- # Bouquets
- for bouquet in defaultTimer.bouquets:
- list.extend((' <bouquet>', str(bouquet), '</bouquet>'))
- ref = ServiceReference(str(bouquet))
- list.extend((' <!-- ', stringToXML(ref.getServiceName().replace('\xc2\x86', '').replace('\xc2\x87', '')), ' -->\n'))
+ # Bouquets
+ for bouquet in defaultTimer.bouquets:
+ ref = ServiceReference(str(bouquet))
+ list.extend((' <bouquet>', str(bouquet), '</bouquet>',
+ ' <!-- ', stringToXML(ref.getServiceName().replace('\xc2\x86', '').replace('\xc2\x87', '')), ' -->\n',
+ ))
# AfterEvent
if defaultTimer.hasAfterEvent():
# Close still opened timer tag
list.append('>\n')
- # Services
- for serviceref in timer.services:
- list.extend((' <serviceref>', serviceref, '</serviceref>'))
- ref = ServiceReference(str(serviceref))
- list.extend((' <!-- ', stringToXML(ref.getServiceName().replace('\xc2\x86', '').replace('\xc2\x87', '')), ' -->\n'))
-
- # Bouquets
- for bouquet in timer.bouquets:
- list.extend((' <bouquet>', str(bouquet), '</bouquet>'))
- ref = ServiceReference(str(bouquet))
- list.extend((' <!-- ', stringToXML(ref.getServiceName().replace('\xc2\x86', '').replace('\xc2\x87', '')), ' -->\n'))
+ if webif:
+ # Services + Bouquets
+ for serviceref in timer.services + timer.bouquets:
+ ref = ServiceReference(str(serviceref))
+ list.extend((
+ ' <e2service>\n',
+ ' <e2servicereference>', str(serviceref), '</e2servicereference>\n',
+ ' <e2servicename>', stringToXML(ref.getServiceName().replace('\xc2\x86', '').replace('\xc2\x87', '')), '</e2servicename>\n',
+ ' </e2service>\n',
+ ))
+ else:
+ # Services
+ for serviceref in timer.services:
+ ref = ServiceReference(str(serviceref))
+ list.extend((' <serviceref>', serviceref, '</serviceref>',
+ ' <!-- ', stringToXML(ref.getServiceName().replace('\xc2\x86', '').replace('\xc2\x87', '')), ' -->\n',
+ ))
+
+ # Bouquets
+ for bouquet in timer.bouquets:
+ ref = ServiceReference(str(bouquet))
+ list.extend((' <bouquet>', str(bouquet), '</bouquet>',
+ ' <!-- ', stringToXML(ref.getServiceName().replace('\xc2\x86', '').replace('\xc2\x87', '')), ' -->\n',
+ ))
# AfterEvent
if timer.hasAfterEvent():
# End of Configuration
list.append('</autotimer>\n')
- # Save to Flash
- file = open(filename, 'w')
- file.writelines(list)
-
- file.close()
+ return list
from AutoTimer import AutoTimer
from . import _
-# pretty basic resource which is just present to have a way to start a
-# forced run through the webif
-class AutoTimerResource(resource.Resource):
- def __init__(self):
- resource.Resource.__init__(self)
-
- def render(self, req):
+class AutoTimerBaseResource(resource.Resource):
+ def getAutoTimerInstance(self):
from plugin import autotimer
-
- remove = False
- res = False
if autotimer is None:
- autotimer = AutoTimer()
- remove = True
+ self._remove = True
+ return AutoTimer()
+ self._remove = False
+ return autotimer
- if req.args.has_key("parse"):
- ret = autotimer.parseEPG()
- output = _("Found a total of %d matching Events.\n%d Timer were added and %d modified.") % (ret[0], ret[1], ret[2])
- res = True
- else:
- output = "unknown command"
+class AutoTimerDoParseResource(AutoTimerBaseResource):
+ def render(self, req):
+ autotimer = self.getAutoTimerInstance()
+ ret = autotimer.parseEPG()
+ output = _("Found a total of %d matching Events.\n%d Timer were added and %d modified.") % (ret[0], ret[1], ret[2])
- if remove:
+ if self._remove:
autotimer.writeXml()
- autotimer = None
result = """<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
<e2simplexmlresult>
- <e2state>%s</e2state>
+ <e2state>true</e2state>
<e2statetext>%s</e2statetext>
</e2simplexmlresult>
- """ % ('true' if res else 'false', output)
+ """ % (output)
req.setResponseCode(http.OK)
req.setHeader('Content-type', 'application; xhtml+xml')
return result
+class AutoTimerListAutoTimerResource(AutoTimerBaseResource):
+ def render(self, req):
+ autotimer = self.getAutoTimerInstance()
+
+ # show xml
+ req.setResponseCode(http.OK)
+ req.setHeader('Content-type', 'application; xhtml+xml')
+ req.setHeader('charset', 'UTF-8')
+ return ''.join(autotimer.getXml())
+