add missing import
[enigma2.git] / RecordTimer.py
index 73e7eefee6af881c78ce0949f2bdc46efb042fb5..215f9c3ab33930b3cc56e2d5471baac609896406 100644 (file)
@@ -1,9 +1,8 @@
 import time
-import codecs
 #from time import datetime
 from Tools import Directories, Notifications
 
-from Components.config import config, ConfigYesNo
+from Components.config import config
 import timer
 import xml.dom.minidom
 
@@ -164,23 +163,26 @@ class RecordTimerEntry(timer.TimerEntry, object):
                                self.log(1, "'record service' failed")
                                return False
 
-                       event_id = self.eit
-                       if event_id is None:
-                               event_id = -1
-                               
-                       prep_res=self.record_service.prepare(self.Filename + ".ts", self.begin, self.end, event_id)
-                       if prep_res:
-                               self.log(2, "'prepare' failed: error %d" % prep_res)
-                               NavigationInstance.instance.stopRecordService(self.record_service)
-                               self.record_service = None
-                               return False
-                               
                        if self.repeated:
                                epgcache = eEPGCache.getInstance()
                                queryTime=self.begin+(self.end-self.begin)/2
                                evt = epgcache.lookupEventTime(rec_ref, queryTime)
                                if evt:
                                        self.description = evt.getShortDescription()
+                                       event_id = evt.getEventId()
+                               else:
+                                       event_id = -1
+                       else:
+                               event_id = self.eit
+                               if event_id is None:
+                                       event_id = -1
+
+                       prep_res=self.record_service.prepare(self.Filename + ".ts", self.begin, self.end, event_id)
+                       if prep_res:
+                               self.log(2, "'prepare' failed: error %d" % prep_res)
+                               NavigationInstance.instance.stopRecordService(self.record_service)
+                               self.record_service = None
+                               return False
 
                        self.log(3, "prepare ok, writing meta information to %s" % self.Filename)
                        try:
@@ -516,7 +518,24 @@ class RecordTimer(timer.Timer):
                chktimecmp_end = None
                end = begin + duration
                for x in self.timer_list:
-                       if str(x.service_ref) == str(service):
+                       check = x.service_ref.ref.toCompareString() == str(service)
+                       if not check:
+                               sref = x.service_ref.ref
+                               parent_sid = sref.getUnsignedData(5)
+                               parent_tsid = sref.getUnsignedData(6)
+                               if parent_sid and parent_tsid: # check for subservice
+                                       sid = sref.getUnsignedData(1)
+                                       tsid = sref.getUnsignedData(2)
+                                       sref.setUnsignedData(1, parent_sid)
+                                       sref.setUnsignedData(2, parent_tsid)
+                                       sref.setUnsignedData(5, 0)
+                                       sref.setUnsignedData(6, 0)
+                                       check = x.service_ref.ref.toCompareString() == str(service)
+                                       sref.setUnsignedData(1, sid)
+                                       sref.setUnsignedData(2, tsid)
+                                       sref.setUnsignedData(5, parent_sid)
+                                       sref.setUnsignedData(6, parent_tsid)
+                       if check:
                                #if x.eit is not None and x.repeated == 0:
                                #       if x.eit == eventid:
                                #               return duration