1 from enigma import eServiceReference
2 from Screens.Screen import Screen
3 from WebComponents.Sources.RequestData import RequestData
5 class WebScreen(Screen):
6 def __init__(self, session, request):
7 Screen.__init__(self, session)
8 self.stand_alone = True
12 class DummyWebScreen(WebScreen):
13 #use it, if you dont need any source, just to can do a static file with an xml-file
14 def __init__(self, session, request):
15 WebScreen.__init__(self, session, request)
17 class UpdateWebScreen(WebScreen):
18 def __init__(self, session, request):
19 WebScreen.__init__(self, session, request)
20 from Components.Sources.Clock import Clock
22 self["CurrentTime"] = Clock()
25 class MessageWebScreen(WebScreen):
26 def __init__(self, session, request):
27 WebScreen.__init__(self, session, request)
28 from WebComponents.Sources.Message import Message
30 self["Message"] = Message(session, func=Message.PRINT)
31 self["GetAnswer"] = Message(session, func=Message.ANSWER)
33 class ServiceListReloadWebScreen(WebScreen):
34 def __init__(self, session, request):
35 WebScreen.__init__(self, session, request)
36 from WebComponents.Sources.ServiceListReload import ServiceListReload
38 self["ServiceListReload"] = ServiceListReload(session)
40 class AudioWebScreen(WebScreen):
41 def __init__(self, session, request):
42 WebScreen.__init__(self, session, request)
43 from WebComponents.Sources.AudioTracks import AudioTracks
45 self["AudioTracks"] = AudioTracks(session, func=AudioTracks.GET)
46 self["SelectAudioTrack"] = AudioTracks(session, func=AudioTracks.SET)
48 class AboutWebScreen(WebScreen):
49 def __init__(self, session, request):
50 WebScreen.__init__(self, session, request)
51 from WebComponents.Sources.About import About
52 from WebComponents.Sources.Frontend import Frontend
53 from WebComponents.Sources.Hdd import Hdd
54 from WebComponents.Sources.Network import Network
55 from Components.config import config
56 from Components.About import about
57 from Components.Sources.StaticText import StaticText
58 from Tools.DreamboxHardware import getFPVersion
59 from Tools.HardwareInfo import HardwareInfo
63 self["About"] = About(session)
65 self["Network"] = Network()
67 self["Frontends"] = Frontend()
68 self["EnigmaVersion"] = StaticText(about.getEnigmaVersionString())
69 self["ImageVersion"] = StaticText(about.getVersionString())
70 self["WebIfVersion"] = StaticText(config.plugins.Webinterface.version.value)
71 self["FpVersion"] = StaticText(str(getFPVersion()))
72 self["DeviceName"] = StaticText(hw.get_device_name())
74 class VolumeWebScreen(WebScreen):
75 def __init__(self, session, request):
76 WebScreen.__init__(self, session, request)
78 from WebComponents.Sources.Volume import Volume
79 self["Volume"] = Volume(session)
81 class SettingsWebScreen(WebScreen):
82 def __init__(self, session, request):
83 WebScreen.__init__(self, session, request)
84 from WebComponents.Sources.Settings import Settings
86 self["Settings"] = Settings(session)
88 class SubServiceWebScreen(WebScreen):
89 def __init__(self, session, request):
90 WebScreen.__init__(self, session, request)
91 from WebComponents.Sources.SubServices import SubServices
93 self["SubServices"] = SubServices(session)
95 class StreamSubServiceWebScreen(WebScreen):
96 def __init__(self, session, request):
97 WebScreen.__init__(self, session, request)
98 from WebComponents.Sources.SubServices import SubServices
100 self["StreamSubServices"] = SubServices(session, streamingScreens)
102 class ServiceListWebScreen(WebScreen):
103 def __init__(self, session, request):
104 WebScreen.__init__(self, session, request)
106 from Components.Sources.ServiceList import ServiceList
107 from Screens.ChannelSelection import service_types_tv
109 fav = eServiceReference(service_types_tv + ' FROM BOUQUET "bouquets.tv" ORDER BY bouquet')
110 self["ServiceList"] = ServiceList(fav, command_func=self.getServiceList, validate_commands=False)
111 self["localip"] = RequestData(request, what=RequestData.HOST)
113 def getServiceList(self, sRef):
114 self["ServiceList"].root = sRef
116 class ServiceListRecursiveWebScreen(WebScreen):
117 def __init__(self, session, request):
118 WebScreen.__init__(self, session, request)
120 from WebComponents.Sources.ServiceListRecursive import ServiceListRecursive
121 self["ServiceListRecursive"] = ServiceListRecursive(session, func=ServiceListRecursive.FETCH)
123 class SwitchServiceWebScreen(WebScreen):
124 def __init__(self, session, request):
125 WebScreen.__init__(self, session, request)
127 from WebComponents.Sources.SwitchService import SwitchService
128 self["SwitchService"] = SwitchService(session)
130 class ReadPluginListWebScreen(WebScreen):
131 def __init__(self, session, request):
132 WebScreen.__init__(self, session, request)
133 from WebComponents.Sources.ReadPluginList import ReadPluginList
134 self["ReadPluginList"] = ReadPluginList(session)
136 class LocationsAndTagsWebScreen(WebScreen):
137 def __init__(self, session, request):
138 WebScreen.__init__(self, session, request)
139 from WebComponents.Sources.LocationsAndTags import LocationsAndTags
141 self["CurrentLocation"] = LocationsAndTags(session, LocationsAndTags.CURRLOCATION)
142 self["Locations"] = LocationsAndTags(session, LocationsAndTags.LOCATIONS)
143 self["AddLocation"] = LocationsAndTags(session, LocationsAndTags.ADDLOCATION)
144 self["RemoveLocation"] = LocationsAndTags(session, LocationsAndTags.REMOVELOCATION)
145 self["Tags"] = LocationsAndTags(session, LocationsAndTags.TAGS)
147 class EpgWebScreen(WebScreen):
148 def __init__(self, session, request):
149 WebScreen.__init__(self, session, request)
150 from WebComponents.Sources.EPG import EPG
152 self["EpgSearch"] = EPG(session, func=EPG.SEARCH)
153 self["EpgSearchSimilar"] = EPG(session, func=EPG.SEARCHSIMILAR)
154 self["EpgService"] = EPG(session, func=EPG.SERVICE)
155 self["EpgBouquetNow"] = EPG(session, func=EPG.BOUQUETNOW)
156 self["EpgBouquetNext"] = EPG(session, func=EPG.BOUQUETNEXT)
157 self["EpgServiceNow"] = EPG(session, func=EPG.SERVICENOW)
158 self["EpgServiceNext"] = EPG(session, func=EPG.SERVICENEXT)
159 self["EpgBouquet"] = EPG(session, func=EPG.BOUQUET)
160 self["localip"] = RequestData(request, what=RequestData.HOST)
162 self["EpgServiceWap"] = EPG(session, func=EPG.SERVICE, endtm=True)
164 def getServiceList(self, sRef):
165 self["ServiceList"].root = sRef
167 class MovieWebScreen(WebScreen):
168 def __init__(self, session, request):
169 WebScreen.__init__(self, session, request)
170 from Components.MovieList import MovieList
171 from Tools.Directories import resolveFilename, SCOPE_HDD
172 from WebComponents.Sources.Movie import Movie
174 movielist = MovieList(eServiceReference("2:0:1:0:0:0:0:0:0:0:" + resolveFilename(SCOPE_HDD)))
175 self["MovieList"] = Movie(session, movielist, func=Movie.LIST)
176 self["MovieFileDel"] = Movie(session, movielist, func=Movie.DEL)
177 self["localip"] = RequestData(request, what=RequestData.HOST)
179 class MediaPlayerWebScreen(WebScreen):
180 def __init__(self, session, request):
181 WebScreen.__init__(self, session, request)
182 from WebComponents.Sources.MP import MP
184 self["FileList"] = MP(session, func=MP.LIST)
185 self["PlayFile"] = MP(session, func=MP.PLAY)
186 self["AddFile"] = MP(session, func = MP.ADD)
187 self["RemoveFile"] = MP(session, func=MP.REMOVE)
188 self["Command"] = MP(session, func=MP.COMMAND)
189 self["WritePlaylist"] = MP(session, func=MP.WRITEPLAYLIST)
190 self["CurrentTrack"] = MP(session, func=MP.CURRENT)
192 class AutoTimerWebScreen(WebScreen):
193 def __init__(self, session, request):
194 WebScreen.__init__(self, session, request)
195 from WebComponents.Sources.AT import AT
197 self["AutoTimerList"] = AT(session, func=AT.LIST)
198 self["AutoTimerWrite"] = AT(session, func=AT.WRITE)
200 class TimerWebScreen(WebScreen):
201 def __init__(self, session, request):
202 WebScreen.__init__(self, session, request)
203 from WebComponents.Sources.Timer import Timer
205 self["TimerList"] = Timer(session, func=Timer.LIST)
206 self["TimerAddEventID"] = Timer(session, func=Timer.ADDBYID)
207 self["TimerAdd"] = Timer(session, func=Timer.ADD)
208 self["TimerDel"] = Timer(session, func=Timer.DEL)
209 self["TimerChange"] = Timer(session, func=Timer.CHANGE)
210 self["TimerListWrite"] = Timer(session, func=Timer.WRITE)
211 self["TVBrowser"] = Timer(session, func=Timer.TVBROWSER)
212 self["RecordNow"] = Timer(session, func=Timer.RECNOW)
213 self["TimerCleanup"] = Timer(session, func=Timer.CLEANUP)
215 class RemoteWebScreen(WebScreen):
216 def __init__(self, session, request):
217 WebScreen.__init__(self, session, request)
218 from WebComponents.Sources.RemoteControl import RemoteControl
220 self["RemoteControl"] = RemoteControl(session)
222 class PowerWebScreen(WebScreen):
223 def __init__(self, session, request):
224 WebScreen.__init__(self, session, request)
225 from WebComponents.Sources.PowerState import PowerState
227 self["PowerState"] = PowerState(session)
229 class ParentControlWebScreen(WebScreen):
230 def __init__(self, session, request):
231 WebScreen.__init__(self, session, request)
232 from WebComponents.Sources.ParentControl import ParentControl
234 self["ParentControlList"] = ParentControl(session)
236 class WapWebScreen(WebScreen):
237 def __init__(self, session, request):
238 WebScreen.__init__(self, session, request)
239 from WebComponents.Sources.WAPfunctions import WAPfunctions
241 self["WAPFillOptionListYear"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
242 self["WAPFillOptionListDay"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
243 self["WAPFillOptionListMonth"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
244 self["WAPFillOptionListShour"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
245 self["WAPFillOptionListSmin"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
246 self["WAPFillOptionListEhour"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
247 self["WAPFillOptionListEmin"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
249 self["WAPFillOptionListRecord"] = WAPfunctions(session, func=WAPfunctions.OPTIONLIST)
250 self["WAPFillOptionListAfterEvent"] = WAPfunctions(session, func=WAPfunctions.OPTIONLIST)
252 self["WAPFillValueName"] = WAPfunctions(session, func=WAPfunctions.FILLVALUE)
253 self["WAPFillValueDescr"] = WAPfunctions(session, func=WAPfunctions.FILLVALUE)
254 self["WAPFillLocation"] = WAPfunctions(session, func=WAPfunctions.LOCATIONLIST)
255 self["WAPFillTags"] = WAPfunctions(session, func=WAPfunctions.TAGLIST)
257 self["WAPFillOptionListRepeated"] = WAPfunctions(session, func=WAPfunctions.REPEATED)
258 self["WAPServiceList"] = WAPfunctions(session, func=WAPfunctions.SERVICELIST)
260 self["WAPdeleteOldOnSave"] = WAPfunctions(session, func=WAPfunctions.DELETEOLD)
262 streamingScreens = []
264 class StreamingWebScreen(WebScreen):
265 def __init__(self, session, request):
266 WebScreen.__init__(self, session, request)
267 from Components.Sources.StreamService import StreamService
268 self["StreamService"] = StreamService(self.session.nav)
269 streamingScreens.append(self)
270 self.screenIndex = len(streamingScreens) - 1
272 def getRecordService(self):
273 if self.has_key("StreamService"):
274 return self["StreamService"].getService()
277 def getRecordServiceRef(self):
278 if self.has_key("StreamService"):
279 return self["StreamService"].ref
282 class M3uStreamingWebScreen(WebScreen):
283 def __init__(self, session, request):
284 WebScreen.__init__(self, session, request)
285 from Components.Sources.StaticText import StaticText
286 from Components.Sources.Config import Config
287 from Components.config import config
288 self["ref"] = StaticText()
289 self["localip"] = RequestData(request, what=RequestData.HOST)
291 class M3uStreamingCurrentServiceWebScreen(WebScreen):
292 def __init__(self, session, request):
293 WebScreen.__init__(self, session, request)
294 from WebComponents.Sources.CurrentService import CurrentService
296 self["CurrentService"] = CurrentService(session)
297 self["localip"] = RequestData(request, what=RequestData.HOST)
299 class TsM3uWebScreen(WebScreen):
300 def __init__(self, session, request):
301 WebScreen.__init__(self, session, request)
302 from Components.Sources.StaticText import StaticText
303 from Components.Sources.Config import Config
304 from Components.config import config
305 self["file"] = StaticText()
306 self["localip"] = RequestData(request, what=RequestData.HOST)
307 self["localport"] = RequestData(request, what=RequestData.PORT)
309 class RestartWebScreen(WebScreen):
310 def __init__(self, session, request):
311 WebScreen.__init__(self, session, request)
313 plugin.restartWebserver(session)
315 class GetPidWebScreen(WebScreen):
316 def __init__(self, session, request):
317 WebScreen.__init__(self, session, request)
318 from Components.Sources.StaticText import StaticText
319 from enigma import iServiceInformation
320 pids = self.session.nav.getCurrentService()
322 pidinfo = pids.info()
323 VPID = hex(pidinfo.getInfo(iServiceInformation.sVideoPID))
324 APID = hex(pidinfo.getInfo(iServiceInformation.sAudioPID))
325 PPID = hex(pidinfo.getInfo(iServiceInformation.sPMTPID))
326 self["pids"] = StaticText("%s,%s,%s" % (PPID.lstrip("0x"), VPID.lstrip("0x"), APID.lstrip("0x")))
328 self["pids"] = StaticText("0x,0x,0x")
330 self["localip"] = RequestData(request, what=RequestData.HOST)
332 class DeviceInfoWebScreen(WebScreen):
333 def __init__(self, session, request):
334 WebScreen.__init__(self, session, request)
335 from WebComponents.Sources.Network import Network
336 from WebComponents.Sources.Hdd import Hdd
337 from WebComponents.Sources.Frontend import Frontend
338 from Components.config import config
339 from Components.About import about
340 from Components.Sources.StaticText import StaticText
341 from Tools.DreamboxHardware import getFPVersion
342 from Tools.HardwareInfo import HardwareInfo
346 self["Network"] = Network()
348 self["Frontends"] = Frontend()
349 self["EnigmaVersion"] = StaticText(about.getEnigmaVersionString())
350 self["ImageVersion"] = StaticText(about.getVersionString())
351 self["WebIfVersion"] = StaticText(config.plugins.Webinterface.version.value)
352 self["FpVersion"] = StaticText(str(getFPVersion()))
353 self["DeviceName"] = StaticText(hw.get_device_name())
355 class ServicePlayableWebScreen(WebScreen):
356 def __init__(self, session, request):
357 WebScreen.__init__(self, session, request)
358 from WebComponents.Sources.ServicePlayable import ServicePlayable
360 self["ServicePlayable"] = ServicePlayable(session, type=ServicePlayable.SINGLE)
362 class ServiceListPlayableWebScreen(WebScreen):
363 def __init__(self, session, request):
364 WebScreen.__init__(self, session, request)
365 from WebComponents.Sources.ServicePlayable import ServicePlayable
367 self["ServiceListPlayable"] = ServicePlayable(session, type=ServicePlayable.BOUQUET)
369 class SleepTimerWebScreen(WebScreen):
370 def __init__(self, session, request):
371 WebScreen.__init__(self, session, request)
373 from WebComponents.Sources.SleepTimer import SleepTimer
374 self["SleepTimer"] = SleepTimer(session)