X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/bbfcb7ea1f040d030277e2b6f2efa9ea0967bf2b..d18113ea974703c0c6fc0396e83dbf59bc9e5b26:/RecordTimer.py diff --git a/RecordTimer.py b/RecordTimer.py index 897c281a..e8b76e92 100644 --- a/RecordTimer.py +++ b/RecordTimer.py @@ -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,6 +141,9 @@ class RecordTimerEntry(timer.TimerEntry, object): if self.name: filename += " - " + self.name + 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) @@ -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_res == 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,8 +648,8 @@ 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): - if x.repeated & (2 ** y): + for y in (0, 1, 2, 3, 4, 5, 6): + if x.repeated & (2 ** y) and (x.begin <= begin or begin <= x.begin <= end): timecmp = y * 1440 + time.tm_hour * 60 + time.tm_min if timecmp <= chktimecmp < (timecmp + ((x.end - x.begin) / 60)): time_match = ((timecmp + ((x.end - x.begin) / 60)) - chktimecmp) * 60