show event information of current selected event in channelselection
[enigma2.git] / lib / python / Components / Converter / ClockToText.py
index 5d5df65113b455bb17df46778c3ca2e8844fdc72..65e431bcd5bd7a698983305d558b640eaa3d9485 100644 (file)
@@ -1,11 +1,13 @@
 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
        
        # add: date, date as string, weekday, ... 
        # (whatever you need!)
@@ -18,9 +20,13 @@ class ClockToText(Converter, object):
                        self.type = self.IN_MINUTES
                elif type == "Date":
                        self.type = self.DATE
+               elif 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:
@@ -38,6 +44,14 @@ class ClockToText(Converter, object):
                        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 "???"