X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/2e874fa14264bf37f17ae9b9375e26059e7f35ec..c3f3135726277c4030e0049fc6ab774ba81c706a:/lib/python/Components/Converter/ClockToText.py diff --git a/lib/python/Components/Converter/ClockToText.py b/lib/python/Components/Converter/ClockToText.py index 085ebc1a..109f9125 100644 --- a/lib/python/Components/Converter/ClockToText.py +++ b/lib/python/Components/Converter/ClockToText.py @@ -1,23 +1,35 @@ -from Components.Converter.Converter import Converter -from time import localtime +from Converter import Converter +from time import localtime, strftime +from Components.Element import cached class ClockToText(Converter, object): DEFAULT = 0 WITH_SECONDS = 1 IN_MINUTES = 2 + DATE = 3 + FORMAT = 4 + AS_LENGTH = 5 # add: date, date as string, weekday, ... # (whatever you need!) - def __init__(self, type, *args, **kwargs): - Converter.__init__(self) + def __init__(self, type): + Converter.__init__(self, type) if type == "WithSeconds": self.type = self.WITH_SECONDS elif type == "InMinutes": self.type = self.IN_MINUTES + elif type == "Date": + self.type = self.DATE + elif type == "AsLength": + self.type = self.AS_LENGTH + elif str(type).find("Format") != -1: + self.type = self.FORMAT + self.fmt_string = type[7:] else: self.type = self.DEFAULT + @cached def getText(self): time = self.source.time if time is None: @@ -26,6 +38,8 @@ class ClockToText(Converter, object): # handle durations if self.type == self.IN_MINUTES: return "%d min" % (time / 60) + elif self.type == self.AS_LENGTH: + return "%d:%02d" % (time / 60, time % 60) t = localtime(time) @@ -33,6 +47,16 @@ class ClockToText(Converter, object): return "%2d:%02d:%02d" % (t.tm_hour, t.tm_min, t.tm_sec) elif self.type == self.DEFAULT: return "%02d:%02d" % (t.tm_hour, t.tm_min) + elif self.type == self.DATE: + return strftime("%A %B %d, %Y", t) + elif self.type == self.FORMAT: + spos = self.fmt_string.find('%') + if spos > 0: + s1 = self.fmt_string[:spos] + s2 = strftime(self.fmt_string[spos:], t) + return str(s1+s2) + else: + return strftime(self.fmt_string, t) else: return "???"