| 1 | from enigma import eServiceReference
|
|---|
| 2 | from Screens.Screen import Screen
|
|---|
| 3 | from WebComponents.Sources.RequestData import RequestData
|
|---|
| 4 |
|
|---|
| 5 | class WebScreen(Screen):
|
|---|
| 6 | def __init__(self, session, request):
|
|---|
| 7 | Screen.__init__(self, session)
|
|---|
| 8 | self.stand_alone = True
|
|---|
| 9 | self.request = request
|
|---|
| 10 | self.instance = None
|
|---|
| 11 |
|
|---|
| 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)
|
|---|
| 16 |
|
|---|
| 17 | class UpdateWebScreen(WebScreen):
|
|---|
| 18 | def __init__(self, session, request):
|
|---|
| 19 | WebScreen.__init__(self, session, request)
|
|---|
| 20 | from Components.Sources.Clock import Clock
|
|---|
| 21 |
|
|---|
| 22 | self["CurrentTime"] = Clock()
|
|---|
| 23 |
|
|---|
| 24 | class MessageWebScreen(WebScreen):
|
|---|
| 25 | def __init__(self, session, request):
|
|---|
| 26 | WebScreen.__init__(self, session, request)
|
|---|
| 27 | from WebComponents.Sources.Message import Message
|
|---|
| 28 |
|
|---|
| 29 | self["Message"] = Message(session, func=Message.PRINT)
|
|---|
| 30 | self["GetAnswer"] = Message(session, func=Message.ANSWER)
|
|---|
| 31 |
|
|---|
| 32 | class ServiceListReloadWebScreen(WebScreen):
|
|---|
| 33 | def __init__(self, session, request):
|
|---|
| 34 | WebScreen.__init__(self, session, request)
|
|---|
| 35 | from WebComponents.Sources.ServiceListReload import ServiceListReload
|
|---|
| 36 |
|
|---|
| 37 | self["ServiceListReload"] = ServiceListReload(session)
|
|---|
| 38 |
|
|---|
| 39 | class AudioWebScreen(WebScreen):
|
|---|
| 40 | def __init__(self, session, request):
|
|---|
| 41 | WebScreen.__init__(self, session, request)
|
|---|
| 42 | from WebComponents.Sources.AudioTracks import AudioTracks
|
|---|
| 43 |
|
|---|
| 44 | self["AudioTracks"] = AudioTracks(session, func=AudioTracks.GET)
|
|---|
| 45 | self["SelectAudioTrack"] = AudioTracks(session, func=AudioTracks.SET)
|
|---|
| 46 |
|
|---|
| 47 | class AboutWebScreen(WebScreen):
|
|---|
| 48 | def __init__(self, session, request):
|
|---|
| 49 | WebScreen.__init__(self, session, request)
|
|---|
| 50 | from WebComponents.Sources.About import About
|
|---|
| 51 | from WebComponents.Sources.Frontend import Frontend
|
|---|
| 52 | from WebComponents.Sources.Hdd import Hdd
|
|---|
| 53 | from WebComponents.Sources.Network import Network
|
|---|
| 54 | from Components.config import config
|
|---|
| 55 | from Components.About import about
|
|---|
| 56 | from Components.Sources.StaticText import StaticText
|
|---|
| 57 | from Tools.DreamboxHardware import getFPVersion
|
|---|
| 58 | from Tools.HardwareInfo import HardwareInfo
|
|---|
| 59 |
|
|---|
| 60 | hw = HardwareInfo()
|
|---|
| 61 |
|
|---|
| 62 | self["About"] = About(session)
|
|---|
| 63 |
|
|---|
| 64 | self["Network"] = Network()
|
|---|
| 65 | self["Hdd"] = Hdd()
|
|---|
| 66 | self["Frontends"] = Frontend()
|
|---|
| 67 | self["EnigmaVersion"] = StaticText(about.getEnigmaVersionString())
|
|---|
| 68 | self["ImageVersion"] = StaticText(about.getVersionString())
|
|---|
| 69 | self["WebIfVersion"] = StaticText(config.plugins.Webinterface.version.value)
|
|---|
| 70 | self["FpVersion"] = StaticText(str(getFPVersion()))
|
|---|
| 71 | self["DeviceName"] = StaticText(hw.get_device_name())
|
|---|
| 72 |
|
|---|
| 73 | class VolumeWebScreen(WebScreen):
|
|---|
| 74 | def __init__(self, session, request):
|
|---|
| 75 | WebScreen.__init__(self, session, request)
|
|---|
| 76 |
|
|---|
| 77 | from WebComponents.Sources.Volume import Volume
|
|---|
| 78 | self["Volume"] = Volume(session)
|
|---|
| 79 |
|
|---|
| 80 | class SettingsWebScreen(WebScreen):
|
|---|
| 81 | def __init__(self, session, request):
|
|---|
| 82 | WebScreen.__init__(self, session, request)
|
|---|
| 83 | from WebComponents.Sources.Settings import Settings
|
|---|
| 84 |
|
|---|
| 85 | self["Settings"] = Settings(session)
|
|---|
| 86 |
|
|---|
| 87 | class SubServiceWebScreen(WebScreen):
|
|---|
| 88 | def __init__(self, session, request):
|
|---|
| 89 | WebScreen.__init__(self, session, request)
|
|---|
| 90 | from WebComponents.Sources.SubServices import SubServices
|
|---|
| 91 |
|
|---|
| 92 | self["SubServices"] = SubServices(session)
|
|---|
| 93 |
|
|---|
| 94 | class StreamSubServiceWebScreen(WebScreen):
|
|---|
| 95 | def __init__(self, session, request):
|
|---|
| 96 | WebScreen.__init__(self, session, request)
|
|---|
| 97 | from WebComponents.Sources.SubServices import SubServices
|
|---|
| 98 |
|
|---|
| 99 | self["StreamSubServices"] = SubServices(session, streamingScreens)
|
|---|
| 100 |
|
|---|
| 101 | class ServiceListWebScreen(WebScreen):
|
|---|
| 102 | def __init__(self, session, request):
|
|---|
| 103 | WebScreen.__init__(self, session, request)
|
|---|
| 104 |
|
|---|
| 105 | from Components.Sources.ServiceList import ServiceList
|
|---|
| 106 | from Screens.ChannelSelection import service_types_tv
|
|---|
| 107 |
|
|---|
| 108 | fav = eServiceReference(service_types_tv + ' FROM BOUQUET "bouquets.tv" ORDER BY bouquet')
|
|---|
| 109 | self["ServiceList"] = ServiceList(fav, command_func=self.getServiceList, validate_commands=False)
|
|---|
| 110 | self["localip"] = RequestData(request, what=RequestData.HOST)
|
|---|
| 111 |
|
|---|
| 112 | def getServiceList(self, sRef):
|
|---|
| 113 | self["ServiceList"].root = sRef
|
|---|
| 114 |
|
|---|
| 115 | class ServiceListRecursiveWebScreen(WebScreen):
|
|---|
| 116 | def __init__(self, session, request):
|
|---|
| 117 | WebScreen.__init__(self, session, request)
|
|---|
| 118 |
|
|---|
| 119 | from WebComponents.Sources.ServiceListRecursive import ServiceListRecursive
|
|---|
| 120 | self["ServiceListRecursive"] = ServiceListRecursive(session, func=ServiceListRecursive.FETCH)
|
|---|
| 121 |
|
|---|
| 122 | class SwitchServiceWebScreen(WebScreen):
|
|---|
| 123 | def __init__(self, session, request):
|
|---|
| 124 | WebScreen.__init__(self, session, request)
|
|---|
| 125 |
|
|---|
| 126 | from WebComponents.Sources.SwitchService import SwitchService
|
|---|
| 127 | self["SwitchService"] = SwitchService(session)
|
|---|
| 128 |
|
|---|
| 129 | class ReadPluginListWebScreen(WebScreen):
|
|---|
| 130 | def __init__(self, session, request):
|
|---|
| 131 | WebScreen.__init__(self, session, request)
|
|---|
| 132 | from WebComponents.Sources.ReadPluginList import ReadPluginList
|
|---|
| 133 | self["ReadPluginList"] = ReadPluginList(session)
|
|---|
| 134 |
|
|---|
| 135 | class LocationsAndTagsWebScreen(WebScreen):
|
|---|
| 136 | def __init__(self, session, request):
|
|---|
| 137 | WebScreen.__init__(self, session, request)
|
|---|
| 138 | from WebComponents.Sources.LocationsAndTags import LocationsAndTags
|
|---|
| 139 |
|
|---|
| 140 | self["CurrentLocation"] = LocationsAndTags(session, LocationsAndTags.CURRLOCATION)
|
|---|
| 141 | self["Locations"] = LocationsAndTags(session, LocationsAndTags.LOCATIONS)
|
|---|
| 142 | self["AddLocation"] = LocationsAndTags(session, LocationsAndTags.ADDLOCATION)
|
|---|
| 143 | self["RemoveLocation"] = LocationsAndTags(session, LocationsAndTags.REMOVELOCATION)
|
|---|
| 144 | self["Tags"] = LocationsAndTags(session, LocationsAndTags.TAGS)
|
|---|
| 145 |
|
|---|
| 146 | class EpgWebScreen(WebScreen):
|
|---|
| 147 | def __init__(self, session, request):
|
|---|
| 148 | WebScreen.__init__(self, session, request)
|
|---|
| 149 | from WebComponents.Sources.EPG import EPG
|
|---|
| 150 |
|
|---|
| 151 | self["EpgSearch"] = EPG(session, func=EPG.SEARCH)
|
|---|
| 152 | self["EpgSearchSimilar"] = EPG(session, func=EPG.SEARCHSIMILAR)
|
|---|
| 153 | self["EpgService"] = EPG(session, func=EPG.SERVICE)
|
|---|
| 154 | self["EpgBouquetNow"] = EPG(session, func=EPG.BOUQUETNOW)
|
|---|
| 155 | self["EpgBouquetNext"] = EPG(session, func=EPG.BOUQUETNEXT)
|
|---|
| 156 | self["EpgServiceNow"] = EPG(session, func=EPG.SERVICENOW)
|
|---|
| 157 | self["EpgServiceNext"] = EPG(session, func=EPG.SERVICENEXT)
|
|---|
| 158 | self["EpgBouquet"] = EPG(session, func=EPG.BOUQUET)
|
|---|
| 159 | self["localip"] = RequestData(request, what=RequestData.HOST)
|
|---|
| 160 |
|
|---|
| 161 | self["EpgServiceWap"] = EPG(session, func=EPG.SERVICE, endtm=True)
|
|---|
| 162 |
|
|---|
| 163 | def getServiceList(self, sRef):
|
|---|
| 164 | self["ServiceList"].root = sRef
|
|---|
| 165 |
|
|---|
| 166 | class MovieWebScreen(WebScreen):
|
|---|
| 167 | def __init__(self, session, request):
|
|---|
| 168 | WebScreen.__init__(self, session, request)
|
|---|
| 169 | from Components.MovieList import MovieList
|
|---|
| 170 | from Tools.Directories import resolveFilename, SCOPE_HDD
|
|---|
| 171 | from WebComponents.Sources.Movie import Movie
|
|---|
| 172 |
|
|---|
| 173 | movielist = MovieList(eServiceReference("2:0:1:0:0:0:0:0:0:0:" + resolveFilename(SCOPE_HDD)))
|
|---|
| 174 | self["MovieList"] = Movie(session, movielist, func=Movie.LIST)
|
|---|
| 175 | self["MovieFileDel"] = Movie(session, movielist, func=Movie.DEL)
|
|---|
| 176 | self["localip"] = RequestData(request, what=RequestData.HOST)
|
|---|
| 177 |
|
|---|
| 178 | class AutoTimerWebScreen(WebScreen):
|
|---|
| 179 | def __init__(self, session, request):
|
|---|
| 180 | WebScreen.__init__(self, session, request)
|
|---|
| 181 | from WebComponents.Sources.AT import AT
|
|---|
| 182 |
|
|---|
| 183 | self["AutoTimerList"] = AT(session, func=AT.LIST)
|
|---|
| 184 | self["AutoTimerWrite"] = AT(session, func=AT.WRITE)
|
|---|
| 185 |
|
|---|
| 186 | class TimerWebScreen(WebScreen):
|
|---|
| 187 | def __init__(self, session, request):
|
|---|
| 188 | WebScreen.__init__(self, session, request)
|
|---|
| 189 | from WebComponents.Sources.Timer import Timer
|
|---|
| 190 |
|
|---|
| 191 | self["TimerList"] = Timer(session, func=Timer.LIST)
|
|---|
| 192 | self["TimerAddEventID"] = Timer(session, func=Timer.ADDBYID)
|
|---|
| 193 | self["TimerAdd"] = Timer(session, func=Timer.ADD)
|
|---|
| 194 | self["TimerDel"] = Timer(session, func=Timer.DEL)
|
|---|
| 195 | self["TimerChange"] = Timer(session, func=Timer.CHANGE)
|
|---|
| 196 | self["TimerListWrite"] = Timer(session, func=Timer.WRITE)
|
|---|
| 197 | self["TVBrowser"] = Timer(session, func=Timer.TVBROWSER)
|
|---|
| 198 | self["RecordNow"] = Timer(session, func=Timer.RECNOW)
|
|---|
| 199 | self["TimerCleanup"] = Timer(session, func=Timer.CLEANUP)
|
|---|
| 200 |
|
|---|
| 201 | class RemoteWebScreen(WebScreen):
|
|---|
| 202 | def __init__(self, session, request):
|
|---|
| 203 | WebScreen.__init__(self, session, request)
|
|---|
| 204 | from WebComponents.Sources.RemoteControl import RemoteControl
|
|---|
| 205 |
|
|---|
| 206 | self["RemoteControl"] = RemoteControl(session)
|
|---|
| 207 |
|
|---|
| 208 | class PowerWebScreen(WebScreen):
|
|---|
| 209 | def __init__(self, session, request):
|
|---|
| 210 | WebScreen.__init__(self, session, request)
|
|---|
| 211 | from WebComponents.Sources.PowerState import PowerState
|
|---|
| 212 |
|
|---|
| 213 | self["PowerState"] = PowerState(session)
|
|---|
| 214 |
|
|---|
| 215 | class ParentControlWebScreen(WebScreen):
|
|---|
| 216 | def __init__(self, session, request):
|
|---|
| 217 | WebScreen.__init__(self, session, request)
|
|---|
| 218 | from WebComponents.Sources.ParentControl import ParentControl
|
|---|
| 219 |
|
|---|
| 220 | self["ParentControlList"] = ParentControl(session)
|
|---|
| 221 |
|
|---|
| 222 | class WapWebScreen(WebScreen):
|
|---|
| 223 | def __init__(self, session, request):
|
|---|
| 224 | WebScreen.__init__(self, session, request)
|
|---|
| 225 | from WebComponents.Sources.WAPfunctions import WAPfunctions
|
|---|
| 226 |
|
|---|
| 227 | self["WAPFillOptionListYear"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
|
|---|
| 228 | self["WAPFillOptionListDay"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
|
|---|
| 229 | self["WAPFillOptionListMonth"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
|
|---|
| 230 | self["WAPFillOptionListShour"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
|
|---|
| 231 | self["WAPFillOptionListSmin"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
|
|---|
| 232 | self["WAPFillOptionListEhour"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
|
|---|
| 233 | self["WAPFillOptionListEmin"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
|
|---|
| 234 |
|
|---|
| 235 | self["WAPFillOptionListRecord"] = WAPfunctions(session, func=WAPfunctions.OPTIONLIST)
|
|---|
| 236 | self["WAPFillOptionListAfterEvent"] = WAPfunctions(session, func=WAPfunctions.OPTIONLIST)
|
|---|
| 237 |
|
|---|
| 238 | self["WAPFillValueName"] = WAPfunctions(session, func=WAPfunctions.FILLVALUE)
|
|---|
| 239 | self["WAPFillValueDescr"] = WAPfunctions(session, func=WAPfunctions.FILLVALUE)
|
|---|
| 240 | self["WAPFillLocation"] = WAPfunctions(session, func=WAPfunctions.LOCATIONLIST)
|
|---|
| 241 | self["WAPFillTags"] = WAPfunctions(session, func=WAPfunctions.TAGLIST)
|
|---|
| 242 |
|
|---|
| 243 | self["WAPFillOptionListRepeated"] = WAPfunctions(session, func=WAPfunctions.REPEATED)
|
|---|
| 244 | self["WAPServiceList"] = WAPfunctions(session, func=WAPfunctions.SERVICELIST)
|
|---|
| 245 |
|
|---|
| 246 | self["WAPdeleteOldOnSave"] = WAPfunctions(session, func=WAPfunctions.DELETEOLD)
|
|---|
| 247 |
|
|---|
| 248 | streamingScreens = []
|
|---|
| 249 |
|
|---|
| 250 | class StreamingWebScreen(WebScreen):
|
|---|
| 251 | def __init__(self, session, request):
|
|---|
| 252 | WebScreen.__init__(self, session, request)
|
|---|
| 253 | from Components.Sources.StreamService import StreamService
|
|---|
| 254 | self["StreamService"] = StreamService(self.session.nav)
|
|---|
| 255 | streamingScreens.append(self)
|
|---|
| 256 | self.screenIndex = len(streamingScreens) - 1
|
|---|
| 257 |
|
|---|
| 258 | def getRecordService(self):
|
|---|
| 259 | if self.has_key("StreamService"):
|
|---|
| 260 | return self["StreamService"].getService()
|
|---|
| 261 | return None
|
|---|
| 262 |
|
|---|
| 263 | def getRecordServiceRef(self):
|
|---|
| 264 | if self.has_key("StreamService"):
|
|---|
| 265 | return self["StreamService"].ref
|
|---|
| 266 | return None
|
|---|
| 267 |
|
|---|
| 268 | class M3uStreamingWebScreen(WebScreen):
|
|---|
| 269 | def __init__(self, session, request):
|
|---|
| 270 | WebScreen.__init__(self, session, request)
|
|---|
| 271 | from Components.Sources.StaticText import StaticText
|
|---|
| 272 | from Components.Sources.Config import Config
|
|---|
| 273 | from Components.config import config
|
|---|
| 274 | self["ref"] = StaticText()
|
|---|
| 275 | self["localip"] = RequestData(request, what=RequestData.HOST)
|
|---|
| 276 |
|
|---|
| 277 | class M3uStreamingCurrentServiceWebScreen(WebScreen):
|
|---|
| 278 | def __init__(self, session, request):
|
|---|
| 279 | WebScreen.__init__(self, session, request)
|
|---|
| 280 | from WebComponents.Sources.CurrentService import CurrentService
|
|---|
| 281 |
|
|---|
| 282 | self["CurrentService"] = CurrentService(session)
|
|---|
| 283 | self["localip"] = RequestData(request, what=RequestData.HOST)
|
|---|
| 284 |
|
|---|
| 285 | class TsM3uWebScreen(WebScreen):
|
|---|
| 286 | def __init__(self, session, request):
|
|---|
| 287 | WebScreen.__init__(self, session, request)
|
|---|
| 288 | from Components.Sources.StaticText import StaticText
|
|---|
| 289 | from Components.Sources.Config import Config
|
|---|
| 290 | from Components.config import config
|
|---|
| 291 | self["file"] = StaticText()
|
|---|
| 292 | self["localip"] = RequestData(request, what=RequestData.HOST)
|
|---|
| 293 | self["localport"] = RequestData(request, what=RequestData.PORT)
|
|---|
| 294 |
|
|---|
| 295 | class RestartWebScreen(WebScreen):
|
|---|
| 296 | def __init__(self, session, request):
|
|---|
| 297 | WebScreen.__init__(self, session, request)
|
|---|
| 298 | import plugin
|
|---|
| 299 | plugin.restartWebserver(session)
|
|---|
| 300 |
|
|---|
| 301 | class GetPidWebScreen(WebScreen):
|
|---|
| 302 | def __init__(self, session, request):
|
|---|
| 303 | WebScreen.__init__(self, session, request)
|
|---|
| 304 | from Components.Sources.StaticText import StaticText
|
|---|
| 305 | from enigma import iServiceInformation
|
|---|
| 306 | pids = self.session.nav.getCurrentService()
|
|---|
| 307 | if pids is not None:
|
|---|
| 308 | pidinfo = pids.info()
|
|---|
| 309 | VPID = hex(pidinfo.getInfo(iServiceInformation.sVideoPID))
|
|---|
| 310 | APID = hex(pidinfo.getInfo(iServiceInformation.sAudioPID))
|
|---|
| 311 | PPID = hex(pidinfo.getInfo(iServiceInformation.sPMTPID))
|
|---|
| 312 | self["pids"] = StaticText("%s,%s,%s" % (PPID.lstrip("0x"), VPID.lstrip("0x"), APID.lstrip("0x")))
|
|---|
| 313 | else:
|
|---|
| 314 | self["pids"] = StaticText("0x,0x,0x")
|
|---|
| 315 |
|
|---|
| 316 | self["localip"] = RequestData(request, what=RequestData.HOST)
|
|---|
| 317 |
|
|---|
| 318 | class DeviceInfoWebScreen(WebScreen):
|
|---|
| 319 | def __init__(self, session, request):
|
|---|
| 320 | WebScreen.__init__(self, session, request)
|
|---|
| 321 | from WebComponents.Sources.Network import Network
|
|---|
| 322 | from WebComponents.Sources.Hdd import *
|
|---|
| 323 | from WebComponents.Sources.Frontend import Frontend
|
|---|
| 324 | from Components.config import config
|
|---|
| 325 | from Components.About import about
|
|---|
| 326 | from Components.Sources.StaticText import StaticText
|
|---|
| 327 | from Tools.DreamboxHardware import getFPVersion
|
|---|
| 328 | from Tools.HardwareInfo import HardwareInfo
|
|---|
| 329 |
|
|---|
| 330 | hw = HardwareInfo()
|
|---|
| 331 |
|
|---|
| 332 | self["Network"] = Network()
|
|---|
| 333 | self["Hdd"] = Hdd()
|
|---|
| 334 | self["Frontends"] = Frontend()
|
|---|
| 335 | self["EnigmaVersion"] = StaticText(about.getEnigmaVersionString())
|
|---|
| 336 | self["ImageVersion"] = StaticText(about.getVersionString())
|
|---|
| 337 | self["WebIfVersion"] = StaticText(config.plugins.Webinterface.version.value)
|
|---|
| 338 | self["FpVersion"] = StaticText(str(getFPVersion()))
|
|---|
| 339 | self["DeviceName"] = StaticText(hw.get_device_name())
|
|---|
| 340 | self["recPath"] = StaticText(hdd.getRecPath())
|
|---|
| 341 | self["recCapacity"] = StaticText(hdd.getRecCapacity())
|
|---|
| 342 | self["recFree"] = StaticText(hdd.getRecFree())
|
|---|
| 343 |
|
|---|
| 344 | class ServicePlayableWebScreen(WebScreen):
|
|---|
| 345 | def __init__(self, session, request):
|
|---|
| 346 | WebScreen.__init__(self, session, request)
|
|---|
| 347 | from WebComponents.Sources.ServicePlayable import ServicePlayable
|
|---|
| 348 |
|
|---|
| 349 | self["ServicePlayable"] = ServicePlayable(session, type=ServicePlayable.SINGLE)
|
|---|
| 350 |
|
|---|
| 351 | class ServiceListPlayableWebScreen(WebScreen):
|
|---|
| 352 | def __init__(self, session, request):
|
|---|
| 353 | WebScreen.__init__(self, session, request)
|
|---|
| 354 | from WebComponents.Sources.ServicePlayable import ServicePlayable
|
|---|
| 355 |
|
|---|
| 356 | self["ServiceListPlayable"] = ServicePlayable(session, type=ServicePlayable.BOUQUET)
|
|---|
| 357 |
|
|---|