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["RemoveFile"] = MP(session, func=MP.REMOVE)
187 self["Command"] = MP(session, func=MP.COMMAND)
188 self["WritePlaylist"] = MP(session, func=MP.WRITEPLAYLIST)
190 class AutoTimerWebScreen(WebScreen):
191 def __init__(self, session, request):
192 WebScreen.__init__(self, session, request)
193 from WebComponents.Sources.AT import AT
195 self["AutoTimerList"] = AT(session, func=AT.LIST)
196 self["AutoTimerWrite"] = AT(session, func=AT.WRITE)
198 class TimerWebScreen(WebScreen):
199 def __init__(self, session, request):
200 WebScreen.__init__(self, session, request)
201 from WebComponents.Sources.Timer import Timer
203 self["TimerList"] = Timer(session, func=Timer.LIST)
204 self["TimerAddEventID"] = Timer(session, func=Timer.ADDBYID)
205 self["TimerAdd"] = Timer(session, func=Timer.ADD)
206 self["TimerDel"] = Timer(session, func=Timer.DEL)
207 self["TimerChange"] = Timer(session, func=Timer.CHANGE)
208 self["TimerListWrite"] = Timer(session, func=Timer.WRITE)
209 self["TVBrowser"] = Timer(session, func=Timer.TVBROWSER)
210 self["RecordNow"] = Timer(session, func=Timer.RECNOW)
211 self["TimerCleanup"] = Timer(session, func=Timer.CLEANUP)
213 class RemoteWebScreen(WebScreen):
214 def __init__(self, session, request):
215 WebScreen.__init__(self, session, request)
216 from WebComponents.Sources.RemoteControl import RemoteControl
218 self["RemoteControl"] = RemoteControl(session)
220 class PowerWebScreen(WebScreen):
221 def __init__(self, session, request):
222 WebScreen.__init__(self, session, request)
223 from WebComponents.Sources.PowerState import PowerState
225 self["PowerState"] = PowerState(session)
227 class ParentControlWebScreen(WebScreen):
228 def __init__(self, session, request):
229 WebScreen.__init__(self, session, request)
230 from WebComponents.Sources.ParentControl import ParentControl
232 self["ParentControlList"] = ParentControl(session)
234 class WapWebScreen(WebScreen):
235 def __init__(self, session, request):
236 WebScreen.__init__(self, session, request)
237 from WebComponents.Sources.WAPfunctions import WAPfunctions
239 self["WAPFillOptionListYear"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
240 self["WAPFillOptionListDay"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
241 self["WAPFillOptionListMonth"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
242 self["WAPFillOptionListShour"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
243 self["WAPFillOptionListSmin"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
244 self["WAPFillOptionListEhour"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
245 self["WAPFillOptionListEmin"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
247 self["WAPFillOptionListRecord"] = WAPfunctions(session, func=WAPfunctions.OPTIONLIST)
248 self["WAPFillOptionListAfterEvent"] = WAPfunctions(session, func=WAPfunctions.OPTIONLIST)
250 self["WAPFillValueName"] = WAPfunctions(session, func=WAPfunctions.FILLVALUE)
251 self["WAPFillValueDescr"] = WAPfunctions(session, func=WAPfunctions.FILLVALUE)
252 self["WAPFillLocation"] = WAPfunctions(session, func=WAPfunctions.LOCATIONLIST)
253 self["WAPFillTags"] = WAPfunctions(session, func=WAPfunctions.TAGLIST)
255 self["WAPFillOptionListRepeated"] = WAPfunctions(session, func=WAPfunctions.REPEATED)
256 self["WAPServiceList"] = WAPfunctions(session, func=WAPfunctions.SERVICELIST)
258 self["WAPdeleteOldOnSave"] = WAPfunctions(session, func=WAPfunctions.DELETEOLD)
260 streamingScreens = []
262 class StreamingWebScreen(WebScreen):
263 def __init__(self, session, request):
264 WebScreen.__init__(self, session, request)
265 from Components.Sources.StreamService import StreamService
266 self["StreamService"] = StreamService(self.session.nav)
267 streamingScreens.append(self)
268 self.screenIndex = len(streamingScreens) - 1
270 def getRecordService(self):
271 if self.has_key("StreamService"):
272 return self["StreamService"].getService()
275 def getRecordServiceRef(self):
276 if self.has_key("StreamService"):
277 return self["StreamService"].ref
280 class M3uStreamingWebScreen(WebScreen):
281 def __init__(self, session, request):
282 WebScreen.__init__(self, session, request)
283 from Components.Sources.StaticText import StaticText
284 from Components.Sources.Config import Config
285 from Components.config import config
286 self["ref"] = StaticText()
287 self["localip"] = RequestData(request, what=RequestData.HOST)
289 class M3uStreamingCurrentServiceWebScreen(WebScreen):
290 def __init__(self, session, request):
291 WebScreen.__init__(self, session, request)
292 from WebComponents.Sources.CurrentService import CurrentService
294 self["CurrentService"] = CurrentService(session)
295 self["localip"] = RequestData(request, what=RequestData.HOST)
297 class TsM3uWebScreen(WebScreen):
298 def __init__(self, session, request):
299 WebScreen.__init__(self, session, request)
300 from Components.Sources.StaticText import StaticText
301 from Components.Sources.Config import Config
302 from Components.config import config
303 self["file"] = StaticText()
304 self["localip"] = RequestData(request, what=RequestData.HOST)
305 self["localport"] = RequestData(request, what=RequestData.PORT)
307 class RestartWebScreen(WebScreen):
308 def __init__(self, session, request):
309 WebScreen.__init__(self, session, request)
311 plugin.restartWebserver(session)
313 class GetPidWebScreen(WebScreen):
314 def __init__(self, session, request):
315 WebScreen.__init__(self, session, request)
316 from Components.Sources.StaticText import StaticText
317 from enigma import iServiceInformation
318 pids = self.session.nav.getCurrentService()
320 pidinfo = pids.info()
321 VPID = hex(pidinfo.getInfo(iServiceInformation.sVideoPID))
322 APID = hex(pidinfo.getInfo(iServiceInformation.sAudioPID))
323 PPID = hex(pidinfo.getInfo(iServiceInformation.sPMTPID))
324 self["pids"] = StaticText("%s,%s,%s" % (PPID.lstrip("0x"), VPID.lstrip("0x"), APID.lstrip("0x")))
326 self["pids"] = StaticText("0x,0x,0x")
328 self["localip"] = RequestData(request, what=RequestData.HOST)
330 class DeviceInfoWebScreen(WebScreen):
331 def __init__(self, session, request):
332 WebScreen.__init__(self, session, request)
333 from WebComponents.Sources.Network import Network
334 from WebComponents.Sources.Hdd import Hdd
335 from WebComponents.Sources.Frontend import Frontend
336 from Components.config import config
337 from Components.About import about
338 from Components.Sources.StaticText import StaticText
339 from Tools.DreamboxHardware import getFPVersion
340 from Tools.HardwareInfo import HardwareInfo
344 self["Network"] = Network()
346 self["Frontends"] = Frontend()
347 self["EnigmaVersion"] = StaticText(about.getEnigmaVersionString())
348 self["ImageVersion"] = StaticText(about.getVersionString())
349 self["WebIfVersion"] = StaticText(config.plugins.Webinterface.version.value)
350 self["FpVersion"] = StaticText(str(getFPVersion()))
351 self["DeviceName"] = StaticText(hw.get_device_name())
353 class ServicePlayableWebScreen(WebScreen):
354 def __init__(self, session, request):
355 WebScreen.__init__(self, session, request)
356 from WebComponents.Sources.ServicePlayable import ServicePlayable
358 self["ServicePlayable"] = ServicePlayable(session, type=ServicePlayable.SINGLE)
360 class ServiceListPlayableWebScreen(WebScreen):
361 def __init__(self, session, request):
362 WebScreen.__init__(self, session, request)
363 from WebComponents.Sources.ServicePlayable import ServicePlayable
365 self["ServiceListPlayable"] = ServicePlayable(session, type=ServicePlayable.BOUQUET)