1 from Components.Converter.Converter import Converter
2 from Components.Element import cached
3 from Components.Converter.genre import getGenreStringSub
5 class EventName(Converter, object):
8 EXTENDED_DESCRIPTION = 2
21 def __init__(self, type):
22 Converter.__init__(self, type)
23 if type == "Description":
24 self.type = self.SHORT_DESCRIPTION
25 elif type == "ExtendedDescription":
26 self.type = self.EXTENDED_DESCRIPTION
27 elif type == "FullDescription":
28 self.type = self.FULL_DESCRIPTION
31 elif type == "NameNow":
32 self.type = self.NAME_NOW
33 elif type == "NameNext":
34 self.type = self.NAME_NEXT
36 self.type = self.GENRE
37 elif type == "Rating":
38 self.type = self.RATING
39 elif type == "SmallRating":
40 self.type = self.SRATING
43 elif type == "PdcTime":
44 self.type = self.PDCTIME
45 elif type == "PdcTimeShort":
46 self.type = self.PDCTIMESHORT
47 elif type == "IsRunningStatus":
48 self.type = self.ISRUNNINGSTATUS
54 event = self.source.event
57 if self.type == self.PDC:
62 boolean = property(getBoolean)
66 event = self.source.event
70 if self.type == self.NAME:
71 return event.getEventName()
72 elif self.type == self.SRATING:
73 rating = event.getParentalData()
77 country = rating.getCountryCode()
78 age = rating.getRating()
82 return _("bc%s") % age
86 elif self.type == self.RATING:
87 rating = event.getParentalData()
91 country = rating.getCountryCode()
92 age = rating.getRating()
94 return _("Rating undefined")
96 return _("Rating defined by broadcaster - %d") % age
99 return _("Minimum age %d years") % age
100 elif self.type == self.GENRE:
101 genre = event.getGenreData()
105 return getGenreStringSub(genre.getLevel1(), genre.getLevel2())
106 elif self.type == self.NAME_NOW:
107 return pgettext("now/next: 'now' event label", "Now") + ": " + event.getEventName()
108 elif self.type == self.NAME_NEXT:
109 return pgettext("now/next: 'next' event label", "Next") + ": " + event.getEventName()
110 elif self.type == self.SHORT_DESCRIPTION:
111 return event.getShortDescription()
112 elif self.type == self.EXTENDED_DESCRIPTION:
113 return event.getExtendedDescription() or event.getShortDescription()
114 elif self.type == self.FULL_DESCRIPTION:
115 description = event.getShortDescription()
116 extended = event.getExtendedDescription()
117 if description and extended:
118 if description.replace('\n','') == extended.replace('\n',''):
121 return description + extended
122 elif self.type == self.ID:
123 return str(event.getEventId())
124 elif self.type == self.PDC:
125 if event.getPdcPil():
128 elif self.type in (self.PDCTIME, self.PDCTIMESHORT):
129 pil = event.getPdcPil()
131 if self.type == self.PDCTIMESHORT:
132 return _("%02d:%02d") % ((pil & 0x7C0) >> 6, (pil & 0x3F))
133 return _("%d.%02d. %02d:%02d") % ((pil & 0xF8000) >> 15, (pil & 0x7800) >> 11, (pil & 0x7C0) >> 6, (pil & 0x3F))
135 elif self.type == self.ISRUNNINGSTATUS:
136 if event.getPdcPil():
137 running_status = event.getRunningStatus()
138 if running_status == 1:
139 return _("not running")
140 if running_status == 2:
141 return _("starts in a few seconds")
142 if running_status == 3:
144 if running_status == 4:
146 if running_status == 5:
147 return _("service off-air")
148 if running_status in (6,7):
149 return _("reserved for future use")
150 return _("undefined")
153 text = property(getText)