Merge branch 'master' of fraxinas@git.opendreambox.org:/git/enigma2
[vuplus_dvbapp] / RecordTimer.py
index 6b306d4..381720e 100644 (file)
@@ -1,6 +1,6 @@
 import time
 #from time import datetime
-from Tools import Directories, Notifications
+from Tools import Directories, Notifications, ASCIItranslit
 
 from Components.config import config
 import timer
@@ -63,7 +63,7 @@ class RecordTimerEntry(timer.TimerEntry, object):
                if event == iRecordableService.evEnd:
                        print "RecordTimer.staticGotRecordEvent(iRecordableService.evEnd)"
                        recordings = NavigationInstance.instance.getRecordings()
-                       if not len(recordings): # no more recordings exist
+                       if not recordings: # no more recordings exist
                                rec_time = NavigationInstance.instance.RecordTimer.getNextRecordingTime()
                                if rec_time > 0 and (rec_time - time.time()) < 360:
                                        print "another recording starts in", rec_time - time.time(), "seconds... do not shutdown yet"
@@ -141,7 +141,10 @@ class RecordTimerEntry(timer.TimerEntry, object):
                if self.name:
                        filename += " - " + self.name
 
-               if self.dirname and not Directories.pathExists(self.dirname):
+               if config.recording.ascii_filenames.value:
+                       filename = ASCIItranslit.legacyEncode(filename)
+
+               if self.dirname and not Directories.fileExists(self.dirname, 'w'):
                        self.dirnameHadToFallback = True
                        self.Filename = Directories.getRecordingFilename(filename, None)
                else:
@@ -181,24 +184,12 @@ class RecordTimerEntry(timer.TimerEntry, object):
                                if event_id is None:
                                        event_id = -1
 
-                       prep_res=self.record_service.prepare(self.Filename + ".ts", self.begin, self.end, event_id)
+                       prep_res=self.record_service.prepare(self.Filename + ".ts", self.begin, self.end, event_id, self.name.replace("\n", ""), self.description.replace("\n", ""), ' '.join(self.tags))
                        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:
-                               f = open(self.Filename + ".ts.meta", "w")
-                               f.write(rec_ref.toString() + "\n")
-                               f.write(self.name + "\n")
-                               f.write(self.description + "\n")
-                               f.write(str(self.begin) + "\n")
-                               f.write(' '.join(self.tags))
-                               f.close()
-                       except IOError:
-                               self.log(4, "failed to write meta information")
+                               if prep_rest == 255:
+                                       self.log(4, "failed to write meta information")
+                               else:
+                                       self.log(2, "'prepare' failed: error %d" % prep_res)
                                NavigationInstance.instance.stopRecordService(self.record_service)
                                self.record_service = None
                                return False
@@ -363,7 +354,7 @@ class RecordTimerEntry(timer.TimerEntry, object):
                elif event == iRecordableService.evStart:
                        text = _("A record has been started:\n%s") % self.name
                        if self.dirnameHadToFallback:
-                               text = '\n'.join([text, _("Please note that the previously selected media could not be accessed and therefore the default directory is being used instead.")])
+                               text = '\n'.join((text, _("Please note that the previously selected media could not be accessed and therefore the default directory is being used instead.")))
 
                        # maybe this should be configurable?
                        Notifications.AddPopup(text = text, type = MessageBox.TYPE_INFO, timeout = 3)
@@ -657,7 +648,7 @@ class RecordTimer(timer.Timer):
                                                chktimecmp = chktime.tm_wday * 1440 + chktime.tm_hour * 60 + chktime.tm_min
                                                chktimecmp_end = chktimecmp + (duration / 60)
                                        time = localtime(x.begin)
-                                       for y in range(7):
+                                       for y in (0, 1, 2, 3, 4, 5, 6):
                                                if x.repeated & (2 ** y):
                                                        timecmp = y * 1440 + time.tm_hour * 60 + time.tm_min
                                                        if timecmp <= chktimecmp < (timecmp + ((x.end - x.begin) / 60)):