con't crash on loading old timers without the "disabled" attribute
[enigma2.git] / RecordTimer.py
index a257b2fa8b3d9875816b9a8c817763dd0048d5b6..19ec9db55c265f0d3c94af9a5b5d18bd8d07edb5 100644 (file)
@@ -32,7 +32,7 @@ def parseEvent(ev):
 
 # please do not translate log messages
 class RecordTimerEntry(timer.TimerEntry):
-       def __init__(self, serviceref, begin, end, name, description, eit):
+       def __init__(self, serviceref, begin, end, name, description, eit, disabled = False):
                timer.TimerEntry.__init__(self, int(begin), int(end))
                
                assert isinstance(serviceref, ServiceReference)
@@ -42,6 +42,7 @@ class RecordTimerEntry(timer.TimerEntry):
                self.dontSave = False
                self.name = name
                self.description = description
+               self.disabled = disabled
                self.timer = None
                self.record_service = None
                self.start_prepare = 0
@@ -182,13 +183,17 @@ def createTimer(xml):
        serviceref = ServiceReference(str(xml.getAttribute("serviceref")))
        description = xml.getAttribute("description").encode("utf-8")
        repeated = xml.getAttribute("repeated").encode("utf-8")
+       try:
+               disabled = eval(xml.getAttribute("disabled"))
+       except:
+               disabled = False
        try:
                eit = long(xml.getAttribute("eit").encode("utf-8"))
        except:
                eit = None
        name = xml.getAttribute("name").encode("utf-8")
        #filename = xml.getAttribute("filename").encode("utf-8")
-       entry = RecordTimerEntry(serviceref, begin, end, name, description, eit)
+       entry = RecordTimerEntry(serviceref, begin, end, name, description, eit, disabled)
        entry.repeated = int(repeated)
        
        for l in elementsWithTag(xml.childNodes, "log"):
@@ -224,7 +229,10 @@ class RecordTimer(timer.Timer):
                root = doc.childNodes[0]
                for timer in elementsWithTag(root.childNodes, "timer"):
                        self.record(createTimer(timer))
-       
+
+       def strToXML(self, str):
+               return str.replace('&', '&amp;').replace('<', '&lt;').replace('>', '&gt;').replace("'", '&apos;'). replace('"', '&qout;')
+
        def saveTimer(self):
                #doc = xml.dom.minidom.Document()
                #root_element = doc.createElement('timers')
@@ -277,9 +285,10 @@ class RecordTimer(timer.Timer):
                        list.append(' end="' + str(int(timer.end)) + '"')
                        list.append(' serviceref="' + str(timer.service_ref) + '"')
                        list.append(' repeated="' + str(int(timer.repeated)) + '"')
-                       list.append(' name="' + str(timer.name) + '"')
-                       list.append(' description="' + str(timer.description) + '"')
+                       list.append(' name="' + str(self.strToXML(timer.name)) + '"')
+                       list.append(' description="' + str(self.strToXML(timer.description)) + '"')
                        list.append(' eit="' + str(timer.eit) + '"')
+                       list.append(' disabled="' + str(int(timer.disabled)) + '"')
                        list.append('>\n')
                        
                        for time, code, msg in timer.log_entries: