[Vbrowser] imported.
[vuplus_dvbapp] / lib / python / Plugins / Extensions / Vbrowser / youtube.py
1 from Screens.Screen import Screen
2 from Screens.HelpMenu import HelpableScreen
3 from Components.ActionMap import ActionMap, HelpableActionMap
4 from Components.ConfigList import ConfigListScreen
5 from Components.Label import Label
6 from Components.Sources.StaticText import StaticText
7 from Components.config import config, ConfigSubsection, ConfigYesNo, ConfigText, getConfigListEntry
8
9 import vbcfg
10
11 from __init__ import _
12
13 config.plugins.youtubetv = ConfigSubsection()
14 config.plugins.youtubetv.showhelp = ConfigYesNo(default = False)
15 config.plugins.youtubetv.uri = ConfigText(default = "http://www.youtube.com/tv", visible_width = 50, fixed_size = False)
16 #config.plugins.youtubetv.uri = ConfigText(default = "http://tv-html.irt.de/", visible_width = 50, fixed_size = False)
17
18 vbcfg.g_youtubetv_cfg = config.plugins.youtubetv
19
20 class YoutubeTVWindow(Screen, HelpableScreen):
21         skin =  """
22                 <screen name="YoutubeTVWindow" position="center,center" size="550,160" title="Start YouTube TV" >
23                         <widget name="infomation" position="5,0" size="540,80" valign="center" halign="center" font="Regular;20" />
24                         <widget name="startdesc" position="10,80" size="395,40" valign="center" font="Regular;20" />
25                         <widget name="helpdesc" position="10,120" size="395,40" valign="center" font="Regular;20" />
26                         <ePixmap pixmap="skin_default/buttons/green.png" position="400,80" size="140,40" alphatest="on" />
27                         <ePixmap pixmap="skin_default/buttons/yellow.png" position="400,120" size="140,40" alphatest="on" />
28                         <widget source="key_green" render="Label" position="400,80" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" foregroundColor="#ffffff" transparent="1" />
29                         <widget source="key_yellow" render="Label" position="400,120" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#a08500" foregroundColor="#ffffff" transparent="1" />
30                 </screen>
31                 """
32
33         def __init__(self, session):
34                 Screen.__init__(self, session)
35                 HelpableScreen.__init__(self)
36
37                 self["actions"] = ActionMap(["WizardActions", "DirectionActions", "OkCancelActions","ColorActions", "EPGSelectActions",], {
38                         "cancel": self.keyCancel,
39                         "red"   : self.keyCancel,
40                         "green" : self.keyGreen,
41                         "yellow": self.keyYellow,
42                 },-2)
43
44                 self["key_green"]  = StaticText(_("Start"))
45                 self["key_yellow"] = StaticText(_("Help"))
46
47                 self["infomation"] = Label()
48                 self["startdesc"]  = Label()
49                 self["helpdesc"]   = Label()
50
51                 self.onLayoutFinish.append(self.layoutFinished)
52
53         def layoutFinished(self):
54                 self.setTitle(_('Start YouTube TV'))
55                 self["infomation"].setText(_("YouTube TV is a new way to watch YouTube videos on Vu+"))
56                 self["startdesc" ].setText(_("* Start YouTube TV"))
57                 self["helpdesc"  ].setText(_("* RC Help"))
58
59         def setHelpModeActions(self):
60                 self.helpList = []
61                 self["OkCancelActions"] = HelpableActionMap(self, "OkCancelActions", {
62                         "ok"    : (self.keyPass, _("Play ther selected the video")),
63                         "cancel": (self.keyPass, _("Exit the YouTube TV")),
64                 })
65                 self["EventViewActions"] = HelpableActionMap(self, "EventViewActions", {
66                         "pageUp"    : (self.keyPass, _("Move up")),
67                         "pageDown"  : (self.keyPass, _("Move down")),
68                         "prevEvent" : (self.keyPass, _("Move left")),
69                         "nextEvent" : (self.keyPass, _("Move right")),
70                 })
71                 self["EPGSelectActions"] = HelpableActionMap(self, "EPGSelectActions", {
72                         "info"        : (self.keyPass, _("Search a video")),
73                         "nextService" : (self.keyPass, _("Skip forward 10 sec")),
74                         "prevService" : (self.keyPass, _("Skip backward 10 sec")),
75                 })
76                 self["MediaPlayerActions"] = HelpableActionMap(self, "MediaPlayerActions", {
77                         "play"  : (self.keyPass, _("Play current video")),
78                         "pause" : (self.keyPass, _("Pause current video")),
79                         "stop"  : (self.keyPass, _("Stop current video")),
80                 })
81                 self["ColorActions"] = HelpableActionMap(self, "ColorActions", {
82                         "red"   : (self.keyPass, _("Back")),
83                 })
84                 self.showHelp()
85
86         def keyPass(self):
87                 pass
88
89         def keyCancel(self):
90                 config.plugins.youtubetv.showhelp.cancel()
91                 self.close(False)
92
93         def keyGreen(self):
94                 config.plugins.youtubetv.showhelp.save()
95                 config.plugins.youtubetv.save()
96                 config.plugins.save()
97                 vbcfg.g_youtubetv_cfg = config.plugins.youtubetv
98                 self.close(True)
99
100         def keyYellow(self):
101                 self.setHelpModeActions()
102
103         def keyBlue(self):
104                 if config.plugins.youtubetv.showhelp.value == True :
105                         config.plugins.youtubetv.showhelp.setValue(False)
106                 else:   config.plugins.youtubetv.showhelp.setValue(True)
107
108 class YoutubeTVSettings(ConfigListScreen, Screen):
109         skin=   """
110                 <screen position="center,center" size="600,140" title="YouTube TV Settings">
111                         <widget name="config" position="0,0" size="600,100" scrollbarMode="showOnDemand" />
112
113                         <ePixmap pixmap="skin_default/buttons/red.png" position="310,100" size="140,40" alphatest="on" />
114                         <ePixmap pixmap="skin_default/buttons/green.png" position="150,100" size="140,40" alphatest="on" />
115
116                         <widget source="key_red" render="Label" position="310,100" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" foregroundColor="#ffffff" transparent="1" />
117                         <widget source="key_green" render="Label" position="150,100" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" foregroundColor="#ffffff" transparent="1" />
118                 </screen>
119                 """
120
121         def __init__(self, session):
122                 self.session = session
123                 self.menulist = []
124
125                 Screen.__init__(self, session)
126                 ConfigListScreen.__init__(self, self.menulist)
127
128                 self["actions"] = ActionMap(["OkCancelActions", "ColorActions",], {
129                         "ok"     : self.keyGreen,
130                         "green"  : self.keyGreen,
131                         "red"    : self.keyRed,
132                         "cancel" : self.keyRed,
133                 }, -2)
134                 self["key_red"]   = StaticText(_("Cancel"))
135                 self["key_green"] = StaticText(_("Save"))
136
137                 self.makeConfigList()
138                 self.onLayoutFinish.append(self.layoutFinished)
139
140         def layoutFinished(self):
141                 self.setTitle(_('YouTube TV Settings'))
142
143         def keyGreen(self):
144                 config.plugins.youtubetv.showhelp.save()
145                 config.plugins.youtubetv.uri.save()
146                 config.plugins.youtubetv.save()
147                 config.plugins.save()
148
149                 vbcfg.g_youtubetv_cfg = config.plugins.youtubetv
150                 self.close()
151
152         def keyRed(self):
153                 config.plugins.youtubetv.showhelp.cancel()
154                 config.plugins.youtubetv.uri.cancel()
155                 self.close()
156
157         def keyLeft(self):
158                 ConfigListScreen.keyLeft(self)
159
160         def keyRight(self):
161                 ConfigListScreen.keyRight(self)
162
163         def makeConfigList(self):
164                 self.menulist = []
165
166                 entryUri = getConfigListEntry(_("YouTube TV URL"), config.plugins.youtubetv.uri)
167                 entryShowHelp = getConfigListEntry(_("Do not show YouTube TV Starter again"), config.plugins.youtubetv.showhelp)
168                 self.menulist.append(entryUri)
169                 self.menulist.append(entryShowHelp)
170                 self["config"].list = self.menulist
171                 self["config"].l.setList(self.menulist)
172