from enigma import eServiceCenter, eServiceReference, eEPGCache
class EPG(Source):
- BOUQUETNOW = 0
- BOUQUETNEXT = 1
- SERVICENOW = 2
- SERVICENEXT = 3
- SERVICE = 4
- SEARCH = 5
- BOUQUET = 6
-
- def __init__(self, navcore, func=BOUQUETNOW, endtm=False):
- self.func = func
- Source.__init__(self)
- self.navcore = navcore
- self.epgcache = eEPGCache.getInstance()
- self.command = None
- self.endtime = endtm
-
- def handleCommand(self, cmd):
- self.command = cmd
-
- def do_func(self):
- if not self.command is None:
- if self.func is self.SEARCH:
- func = self.searchEvent
- elif self.func is self.SERVICE:
- func = self.getEPGofService
- elif self.func is self.BOUQUETNOW:
- func = self.getBouquetEPGNow
- elif self.func is self.BOUQUETNEXT:
- func = self.getBouquetEPGNext
- elif self.func is self.BOUQUET:
- func = self.getEPGofBouquet
- elif self.func is self.SERVICENOW:
- func = self.getServiceEPGNow
- elif self.func is self.SERVICENEXT:
- func = self.getServiceEPGNext
-
- return func(self.command)
- return []
-
- def getBouquetEPGNow(self, ref):
- return self.getEPGNowNext(ref, 0)
-
- def getBouquetEPGNext(self, ref):
- return self.getEPGNowNext(ref, 1)
-
- def getServiceEPGNow(self, ref):
- return self.getEPGNowNext(ref, 0, True)
-
- def getServiceEPGNext(self, ref):
- return self.getEPGNowNext(ref, 1, True)
-
- def getEPGNowNext(self, ref, type, service=False):
- print "[WebComponents.EPG] getting EPG NOW/NEXT", ref
-
- if service:
- events = self.epgcache.lookupEvent(['IBDTSERNX', (ref, type, -1)])
- else:
- serviceHandler = eServiceCenter.getInstance()
- list = serviceHandler.list(eServiceReference(ref))
- services = list and list.getContent('S')
- search = ['IBDTSERNX']
-
- if services: # It's a Bouquet
- search.extend([(service, type, -1) for service in services])
-
- events = self.epgcache.lookupEvent(search)
-
- if events:
- return events
- return []
-
- def getEPGofService(self, ref, options='IBDTSERN'):
- print "getting EPG of Service", ref
- events = self.epgcache.lookupEvent([options , (ref, 0, -1, -1)]);
- if events:
- if self.endtime:
- list = self.insertEndTime(events)
- return list
-
- return events
- return []
-
- def insertEndTime(self, events):
- list = []
- for event in events:
- i = 0
- evt = []
- end = event[1] + event[2]
- for item in event:
- if i == 3:
- evt.append(end)
- i += 1
-
- evt.append(item)
- i += 1
-
- list.append(evt)
-
- return list
-
- def getEPGofBouquet(self, param):
- print "[WebComponents.EPG] getting EPG for Bouquet", param
-
- if not param.has_key('bRef'):
- return []
-
- time = -1
- if param.has_key('time'):
- if param['time'] is not None:
- time = int(float(param['time']))
- if time < 0:
- time = -1
-
- bRef = param['bRef']
-
- serviceHandler = eServiceCenter.getInstance()
- sl = serviceHandler.list(eServiceReference(bRef))
- services = sl and sl.getContent('S')
-
- search = ['IBDTSERN']
- search.extend([(service, 0, time) for service in services])
-
- events = self.epgcache.lookupEvent(search)
-
- if events:
- return events
- return []
-
- def searchEvent(self, needle):
- print "[WebComponents.EPG] searching EPG: ", needle
-
- events = self.epgcache.search(('IBDTSERN', 256, eEPGCache.PARTIAL_TITLE_SEARCH, needle, 1));
- if events:
- return events
- return []
-
- def getLut(self):
- if self.endtime:
- lut = {
- "EventID": 0,
- "TimeStart": 1,
- "Duration": 2,
- "TimeEnd": 3,
- "Title": 4,
- "Description": 5,
- "DescriptionExtended": 6,
- "ServiceReference": 7,
- "ServiceName": 8
- }
- return lut
- else:
- lut = {
- "EventID": 0,
- "TimeStart": 1,
- "Duration": 2,
- "Title": 3,
- "Description": 4,
- "DescriptionExtended": 5,
- "ServiceReference": 6,
- "ServiceName": 7
- }
-
- return lut
-
- list = property(do_func)
-
- lut = property(getLut)
-
\ No newline at end of file
+ BOUQUETNOW = 0
+ BOUQUETNEXT = 1
+ SERVICENOW = 2
+ SERVICENEXT = 3
+ SERVICE = 4
+ SEARCH = 5
+ BOUQUET = 6
+ SEARCHSIMILAR = 7
+ def __init__(self, navcore, func=BOUQUETNOW, endtm=False):
+ self.func = func
+ Source.__init__(self)
+ self.navcore = navcore
+ self.epgcache = eEPGCache.getInstance()
+ self.command = None
+ self.endtime = endtm
+
+ def handleCommand(self, cmd):
+ print "#"*20,"handleCommand",cmd
+ self.command = cmd
+
+ def do_func(self):
+ if not self.command is None:
+ if self.func is self.SEARCHSIMILAR:
+ func = self.searchSimilarEvent
+ elif self.func is self.SEARCH:
+ func = self.searchEvent
+ elif self.func is self.SERVICE:
+ func = self.getEPGofService
+ elif self.func is self.BOUQUETNOW:
+ func = self.getBouquetEPGNow
+ elif self.func is self.BOUQUETNEXT:
+ func = self.getBouquetEPGNext
+ elif self.func is self.BOUQUET:
+ func = self.getEPGofBouquet
+ elif self.func is self.SERVICENOW:
+ func = self.getServiceEPGNow
+ elif self.func is self.SERVICENEXT:
+ func = self.getServiceEPGNext
+
+ return func(self.command)
+ return []
+
+ def getBouquetEPGNow(self, ref):
+ return self.getEPGNowNext(ref, 0)
+
+ def getBouquetEPGNext(self, ref):
+ return self.getEPGNowNext(ref, 1)
+
+ def getServiceEPGNow(self, ref):
+ return self.getEPGNowNext(ref, 0, True)
+
+ def getServiceEPGNext(self, ref):
+ return self.getEPGNowNext(ref, 1, True)
+
+ def getEPGNowNext(self, ref, type, service=False):
+ print "[WebComponents.EPG] getting EPG NOW/NEXT", ref
+
+ if service:
+ events = self.epgcache.lookupEvent(['IBDTSERNX', (ref, type, -1)])
+ else:
+ serviceHandler = eServiceCenter.getInstance()
+ list = serviceHandler.list(eServiceReference(ref))
+ services = list and list.getContent('S')
+ search = ['IBDTSERNX']
+
+ if services: # It's a Bouquet
+ search.extend([(service, type, -1) for service in services])
+
+ events = self.epgcache.lookupEvent(search)
+
+ if events:
+ return events
+ return []
+
+ def getEPGofService(self, ref, options='IBDTSERN'):
+ print "getting EPG of Service", ref
+ events = self.epgcache.lookupEvent([options , (ref, 0, -1, -1)]);
+ if events:
+ if self.endtime:
+ list = self.insertEndTime(events)
+ return list
+
+ return events
+ return []
+
+ def insertEndTime(self, events):
+ list = []
+ for event in events:
+ i = 0
+ evt = []
+ end = event[1] + event[2]
+ for item in event:
+ if i == 3:
+ evt.append(end)
+ i += 1
+
+ evt.append(item)
+ i += 1
+
+ list.append(evt)
+
+ return list
+
+ def getEPGofBouquet(self, param):
+ print "[WebComponents.EPG] getting EPG for Bouquet", param
+
+ if not param.has_key('bRef'):
+ return []
+
+ time = -1
+ if param.has_key('time'):
+ if param['time'] is not None:
+ time = int(float(param['time']))
+ if time < 0:
+ time = -1
+
+ bRef = param['bRef']
+
+ serviceHandler = eServiceCenter.getInstance()
+ sl = serviceHandler.list(eServiceReference(bRef))
+ services = sl and sl.getContent('S')
+
+ search = ['IBDTSERN']
+ search.extend([(service, 0, time) for service in services])
+
+ events = self.epgcache.lookupEvent(search)
+
+ if events:
+ return events
+ return []
+
+ def searchEvent(self, needle):
+ print "[WebComponents.EPG] searching EPG: ", needle
+
+ events = self.epgcache.search(('IBDTSERN', 256, eEPGCache.PARTIAL_TITLE_SEARCH, needle, 1));
+ if events:
+ return events
+ return []
+
+ def searchSimilarEvent(self, needle):
+ print "[WebComponents.EPG] searching similar eventid: ",needle
+
+ events = self.epgcache.search(('IBDTSERN', 256, eEPGCache.SIMILAR_BROADCASTINGS_SEARCH, needle['sRef'], int(needle['eventid'])));
+ if events:
+ return events
+ return []
+
+ def getLut(self):
+ if self.endtime:
+ lut = {
+ "EventID": 0,
+ "TimeStart": 1,
+ "Duration": 2,
+ "TimeEnd": 3,
+ "Title": 4,
+ "Description": 5,
+ "DescriptionExtended": 6,
+ "ServiceReference": 7,
+ "ServiceName": 8
+ }
+ return lut
+ else:
+ lut = {
+ "EventID": 0,
+ "TimeStart": 1,
+ "Duration": 2,
+ "Title": 3,
+ "Description": 4,
+ "DescriptionExtended": 5,
+ "ServiceReference": 6,
+ "ServiceName": 7
+ }
+
+ return lut
+
+ list = property(do_func)
+
+ lut = property(getLut)
Screen.__init__(self, session)
self.stand_alone = True
self.request = request
- self.instance = None
+ self.instance = None
class DummyWebScreen(WebScreen):
#use it, if you dont need any source, just to can do a static file with an xml-file
def __init__(self, session, request):
WebScreen.__init__(self, session, request)
from Components.Sources.Clock import Clock
-
+
self["CurrentTime"] = Clock()
-
+
class MessageWebScreen(WebScreen):
def __init__(self, session, request):
WebScreen.__init__(self, session, request)
from WebComponents.Sources.Message import Message
-
+
self["Message"] = Message(session, func=Message.PRINT)
self["GetAnswer"] = Message(session, func=Message.ANSWER)
def __init__(self, session, request):
WebScreen.__init__(self, session, request)
from WebComponents.Sources.ServiceListReload import ServiceListReload
-
+
self["ServiceListReload"] = ServiceListReload(session)
class AudioWebScreen(WebScreen):
def __init__(self, session, request):
WebScreen.__init__(self, session, request)
from WebComponents.Sources.AudioTracks import AudioTracks
-
+
self["AudioTracks"] = AudioTracks(session, func=AudioTracks.GET)
self["SelectAudioTrack"] = AudioTracks(session, func=AudioTracks.SET)
from WebComponents.Sources.About import About
from WebComponents.Sources.Frontend import Frontend
from WebComponents.Sources.Hdd import Hdd
- from WebComponents.Sources.Network import Network
+ from WebComponents.Sources.Network import Network
from Components.config import config
from Components.About import about
from Components.Sources.StaticText import StaticText
from Tools.DreamboxHardware import getFPVersion
from Tools.HardwareInfo import HardwareInfo
-
+
hw = HardwareInfo()
-
- self["About"] = About(session)
-
+
+ self["About"] = About(session)
+
self["Network"] = Network()
self["Hdd"] = Hdd()
- self["Frontends"] = Frontend()
+ self["Frontends"] = Frontend()
self["EnigmaVersion"] = StaticText(about.getEnigmaVersionString())
self["ImageVersion"] = StaticText(about.getVersionString())
self["WebIfVersion"] = StaticText(config.plugins.Webinterface.version.value)
self["FpVersion"] = StaticText(str(getFPVersion()))
- self["DeviceName"] = StaticText(hw.get_device_name())
+ self["DeviceName"] = StaticText(hw.get_device_name())
class VolumeWebScreen(WebScreen):
def __init__(self, session, request):
WebScreen.__init__(self, session, request)
-
- from WebComponents.Sources.Volume import Volume
+
+ from WebComponents.Sources.Volume import Volume
self["Volume"] = Volume(session)
class SettingsWebScreen(WebScreen):
def __init__(self, session, request):
WebScreen.__init__(self, session, request)
from WebComponents.Sources.Settings import Settings
-
+
self["Settings"] = Settings(session)
class SubServiceWebScreen(WebScreen):
def __init__(self, session, request):
WebScreen.__init__(self, session, request)
from WebComponents.Sources.SubServices import SubServices
-
+
self["SubServices"] = SubServices(session)
class StreamSubServiceWebScreen(WebScreen):
def __init__(self, session, request):
WebScreen.__init__(self, session, request)
from WebComponents.Sources.SubServices import SubServices
-
+
self["StreamSubServices"] = SubServices(session, streamingScreens)
class ServiceWebScreen(WebScreen):
from WebComponents.Sources.ServiceListRecursive import ServiceListRecursive
from Components.Sources.ServiceList import ServiceList
from Screens.ChannelSelection import service_types_tv
-
+
fav = eServiceReference(service_types_tv + ' FROM BOUQUET "bouquets.tv" ORDER BY bouquet')
self["SwitchService"] = ServiceList(fav, command_func=self.zapTo, validate_commands=False)
self["ServiceList"] = ServiceList(fav, command_func=self.getServiceList, validate_commands=False)
def __init__(self, session, request):
WebScreen.__init__(self, session, request)
from WebComponents.Sources.LocationsAndTags import LocationsAndTags
-
+
self["CurrentLocation"] = LocationsAndTags(session, LocationsAndTags.CURRLOCATION)
self["Locations"] = LocationsAndTags(session, LocationsAndTags.LOCATIONS)
self["Tags"] = LocationsAndTags(session, LocationsAndTags.TAGS)
from WebComponents.Sources.EPG import EPG
self["EpgSearch"] = EPG(session, func=EPG.SEARCH)
- self["EpgService"] = EPG(session, func=EPG.SERVICE)
+ self["EpgSearchSimilar"] = EPG(session, func=EPG.SEARCHSIMILAR)
+ self["EpgService"] = EPG(session, func=EPG.SERVICE)
self["EpgBouquetNow"] = EPG(session, func=EPG.BOUQUETNOW)
self["EpgBouquetNext"] = EPG(session, func=EPG.BOUQUETNEXT)
self["EpgServiceNow"] = EPG(session, func=EPG.SERVICENOW)
self["EpgServiceNext"] = EPG(session, func=EPG.SERVICENEXT)
self["EpgBouquet"] = EPG(session, func=EPG.BOUQUET)
self["localip"] = RequestData(request, what=RequestData.HOST)
-
+
self["EPGSERVICEWAP"] = EPG(session, func=EPG.SERVICE, endtm=True)
def getServiceList(self, sRef):
class MovieWebScreen(WebScreen):
def __init__(self, session, request):
- WebScreen.__init__(self, session, request)
+ WebScreen.__init__(self, session, request)
from Components.MovieList import MovieList
from Tools.Directories import resolveFilename, SCOPE_HDD
from WebComponents.Sources.Movie import Movie
-
+
movielist = MovieList(eServiceReference("2:0:1:0:0:0:0:0:0:0:" + resolveFilename(SCOPE_HDD)))
self["MovieList"] = Movie(session, movielist, func=Movie.LIST)
self["MovieFileDel"] = Movie(session, movielist, func=Movie.DEL)
def __init__(self, session, request):
WebScreen.__init__(self, session, request)
from WebComponents.Sources.MP import MP
-
+
self["FileList"] = MP(session, func=MP.LIST)
self["PlayFile"] = MP(session, func=MP.PLAY)
self["Command"] = MP(session, func=MP.COMMAND)
def __init__(self, session, request):
WebScreen.__init__(self, session, request)
from WebComponents.Sources.AT import AT
-
+
self["AutoTimerList"] = AT(session, func=AT.LIST)
self["AutoTimerWrite"] = AT(session, func=AT.WRITE)
class TimerWebScreen(WebScreen):
def __init__(self, session, request):
- WebScreen.__init__(self, session, request)
+ WebScreen.__init__(self, session, request)
from WebComponents.Sources.Timer import Timer
-
+
self["TimerList"] = Timer(session, func=Timer.LIST)
self["TimerAddEventID"] = Timer(session, func=Timer.ADDBYID)
self["TimerAdd"] = Timer(session, func=Timer.ADD)
def __init__(self, session, request):
WebScreen.__init__(self, session, request)
from WebComponents.Sources.RemoteControl import RemoteControl
-
+
self["RemoteControl"] = RemoteControl(session)
class PowerWebScreen(WebScreen):
def __init__(self, session, request):
WebScreen.__init__(self, session, request)
from WebComponents.Sources.PowerState import PowerState
-
+
self["PowerState"] = PowerState(session)
class ParentControlWebScreen(WebScreen):
def __init__(self, session, request):
WebScreen.__init__(self, session, request)
from WebComponents.Sources.ParentControl import ParentControl
-
+
self["ParentControlList"] = ParentControl(session)
class WapWebScreen(WebScreen):
def __init__(self, session, request):
WebScreen.__init__(self, session, request)
from WebComponents.Sources.WAPfunctions import WAPfunctions
-
+
self["WAPFillOptionListYear"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
self["WAPFillOptionListDay"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
self["WAPFillOptionListMonth"] = WAPfunctions(session, func=WAPfunctions.LISTTIME)
def __init__(self, session, request):
WebScreen.__init__(self, session, request)
from Components.Sources.StreamService import StreamService
- self["StreamService"] = StreamService(self.session.nav)
+ self["StreamService"] = StreamService(self.session.nav)
streamingScreens.append(self)
self.screenIndex = len(streamingScreens) - 1
-
+
def getRecordService(self):
if self.has_key("StreamService"):
return self["StreamService"].getService()
return None
-
+
def getRecordServiceRef(self):
if self.has_key("StreamService"):
return self["StreamService"].ref
def __init__(self, session, request):
WebScreen.__init__(self, session, request)
from WebComponents.Sources.CurrentService import CurrentService
-
+
self["CurrentService"] = CurrentService(session)
self["localip"] = RequestData(request, what=RequestData.HOST)
WebScreen.__init__(self, session, request)
from WebComponents.Sources.Network import Network
from WebComponents.Sources.Hdd import Hdd
- from WebComponents.Sources.Frontend import Frontend
+ from WebComponents.Sources.Frontend import Frontend
from Components.config import config
from Components.About import about
from Components.Sources.StaticText import StaticText
from Tools.DreamboxHardware import getFPVersion
from Tools.HardwareInfo import HardwareInfo
-
+
hw = HardwareInfo()
-
+
self["Network"] = Network()
self["Hdd"] = Hdd()
- self["Frontends"] = Frontend()
+ self["Frontends"] = Frontend()
self["EnigmaVersion"] = StaticText(about.getEnigmaVersionString())
self["ImageVersion"] = StaticText(about.getVersionString())
self["WebIfVersion"] = StaticText(config.plugins.Webinterface.version.value)