1 # -*- coding: UTF-8 -*-
2 ## Zap-History Browser by AliAbdul
3 from Components.ActionMap import ActionMap
4 from Components.Label import Label
5 from Components.Language import language
6 from Components.MenuList import MenuList
7 from enigma import eServiceCenter
9 from Plugins.Plugin import PluginDescriptor
10 from Screens.Screen import Screen
11 from Tools.Directories import resolveFilename, SCOPE_LANGUAGE, SCOPE_PLUGINS
14 ################################################
17 lang = language.getLanguage()
18 environ["LANGUAGE"] = lang[:2]
\r
19 gettext.bindtextdomain("enigma2", resolveFilename(SCOPE_LANGUAGE))
\r
20 gettext.textdomain("enigma2")
21 gettext.bindtextdomain("ZapHistoryBrowser", "%s%s" % (resolveFilename(SCOPE_PLUGINS), "Extensions/ZapHistoryBrowser/locale/"))
24 t = gettext.dgettext("ZapHistoryBrowser", txt)
\r
26 t = gettext.gettext(txt)
\r
30 language.addCallback(localeInit)
32 ################################################
34 class ZapHistoryBrowser(Screen):
36 <screen position="center,center" size="320,440" title="%s" >
37 <ePixmap pixmap="skin_default/buttons/red.png" position="10,0" size="140,40" transparent="1" alphatest="on" />
38 <ePixmap pixmap="skin_default/buttons/green.png" position="170,0" size="140,40" transparent="1" alphatest="on" />
39 <widget name="key_red" position="10,0" zPosition="1" size="140,40" font="Regular;20" valign="center" halign="center" backgroundColor="#1f771f" transparent="1" />
40 <widget name="key_green" position="170,0" zPosition="1" size="140,40" font="Regular;20" valign="center" halign="center" backgroundColor="#1f771f" transparent="1" />
41 <widget name="list" position="0,40" size="320,400" scrollbarMode="showOnDemand" />
42 </screen>""" % _("Zap-History Browser")
44 def __init__(self, session, servicelist):
45 Screen.__init__(self, session)
46 self.session = session
48 self.servicelist = servicelist
49 self.serviceHandler = eServiceCenter.getInstance()
51 self["list"] = MenuList([])
52 self["key_red"] = Label(_("Clear"))
53 self["key_green"] = Label(_("Delete"))
55 self["actions"] = ActionMap(["OkCancelActions", "ColorActions"],
63 self.onLayoutFinish.append(self.buildList)
67 for x in self.servicelist.history:
68 if len(x) == 2: # Single-Bouquet
72 info = self.serviceHandler.info(ref)
73 name = info.getName(ref).replace('\xc2\x86', '').replace('\xc2\x87', '')
76 self["list"].setList(list)
79 length = len(self.servicelist.history)
81 self.servicelist.history_pos = (length - self["list"].getSelectionIndex()) - 1
82 self.servicelist.setHistoryPath()
85 for i in range(0, len(self.servicelist.history)):
86 del self.servicelist.history[0]
88 self.servicelist.history_pos = 0
91 length = len(self.servicelist.history)
93 idx = (length - self["list"].getSelectionIndex()) - 1
94 del self.servicelist.history[idx]
97 # We must check if the current service is still in the zap-history
98 currRef = self.session.nav.getCurrentlyPlayingServiceReference()
100 for x in self.servicelist.history:
101 if len(x) == 2: # Single-Bouquet
103 else: # Multi-Bouquet
107 self.servicelist.history_pos = idx
112 ################################################
114 def main(session, servicelist, **kwargs):
115 session.open(ZapHistoryBrowser, servicelist)
117 def Plugins(**kwargs):
118 return PluginDescriptor(name=_("Zap-History Browser"), where=PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=main)