def prepareRefresh(self): print("[EPGRefresh] About to start refreshing EPG") # Maybe read in configuration try: self.readConfiguration() except Exception as e: print("[EPGRefresh] Error occured while reading in configuration:", e) self.scanServices = self.generateServicelist(self.services[0], self.services[1]) # Debug print("[EPGRefresh] Services we're going to scan:", ', '.join([repr(x) for x in self.scanServices])) self.maybeStopAdapter() # NOTE: start notification is handled in adapter initializer if config.plugins.epgrefresh.adapter.value.startswith("pip"): hidden = config.plugins.epgrefresh.adapter.value == "pip_hidden" refreshAdapter = PipAdapter(self.session, hide=hidden) elif config.plugins.epgrefresh.adapter.value.startswith("record"): refreshAdapter = RecordAdapter(self.session) else: refreshAdapter = MainPictureAdapter(self.session) if (not refreshAdapter.backgroundCapable and Screens.Standby.inStandby) or not refreshAdapter.prepare(): print("[EPGRefresh] Adapter is not able to run in background or not available, falling back to MainPictureAdapter") refreshAdapter = MainPictureAdapter(self.session) refreshAdapter.prepare() self.refreshAdapter = refreshAdapter self.refresh()
def prepareRefresh(self): print("[EPGRefresh] About to start refreshing EPG") try: self.readConfiguration() except Exception as e: print("[EPGRefresh] Error occured while reading in configuration:", e) self.scanServices = self.generateServicelist(self.services[0], self.services[1]) print("[EPGRefresh] Services we're going to scan:", ', '.join([repr(x) for x in self.scanServices])) self.maybeStopAdapter() if config.plugins.epgrefresh.adapter.value == "main": refreshAdapter = MainPictureAdapter(self.session) elif config.plugins.epgrefresh.adapter.value == "record": refreshAdapter = RecordAdapter(self.session) else: if config.plugins.epgrefresh.adapter.value == "pip": hidden = False elif config.plugins.epgrefresh.adapter.value == "pip_hidden": hidden = True refreshAdapter = PipAdapter(self.session, hide=hidden) if (not refreshAdapter.backgroundCapable and Screens.Standby.inStandby) or not refreshAdapter.prepare(): print( "[EPGRefresh] Adapter is not able to run in background or not available, falling back to MainPictureAdapter" ) refreshAdapter = MainPictureAdapter(self.session) refreshAdapter.prepare() self.refreshAdapter = refreshAdapter self.isrunning = True self.refresh() print("[EPGRefresh] pre start...")
def prepareRefresh(self): if not self.isRefreshAllowed(): return self.isrunning = True print("[EPGRefresh] About to start refreshing EPG") self._initFinishTodos() # Maybe read in configuration try: self.readConfiguration() except Exception as e: print("[EPGRefresh] Error occured while reading in configuration:", e) self.scanServices = self.generateServicelist(self.services[0], self.services[1]) # Debug print("[EPGRefresh] Services we're going to scan:", ', '.join([repr(x) for x in self.scanServices])) self.maybeStopAdapter() # NOTE: start notification is handled in adapter initializer if config.plugins.epgrefresh.adapter.value.startswith("pip"): hidden = config.plugins.epgrefresh.adapter.value == "pip_hidden" refreshAdapter = PipAdapter(self.session, hide=hidden) elif config.plugins.epgrefresh.adapter.value.startswith("record"): refreshAdapter = RecordAdapter(self.session) else: refreshAdapter = MainPictureAdapter(self.session) if (not refreshAdapter.backgroundCapable and Screens.Standby.inStandby) or not refreshAdapter.prepare(): print( "[EPGRefresh] Adapter is not able to run in background or not available, falling back to MainPictureAdapter" ) refreshAdapter = MainPictureAdapter(self.session) refreshAdapter.prepare() self.refreshAdapter = refreshAdapter try: from plugin import AdjustExtensionsmenu, extStopDescriptor, extPendingServDescriptor, extRunDescriptor AdjustExtensionsmenu(True, extPendingServDescriptor) AdjustExtensionsmenu(True, extStopDescriptor) AdjustExtensionsmenu(False, extRunDescriptor) except: print( "[EPGRefresh] Error while adding 'Stop Running EPG-Refresh' to Extensionmenu" ) print_exc(file=stdout) if config.plugins.epgrefresh.erase.value: print("[EPGRefresh] flushing EPG cache...") from enigma import eEPGCache epgcache = eEPGCache.getInstance() epgcache.flushEPG() self.refresh()
def nextService(self): # Debug print("[EPGRefresh] Maybe zap to next service") try: # Get next reference service = self.scanServices.pop(0) except IndexError: # Debug print("[EPGRefresh] Done refreshing EPG") # Clean up self.cleanUp() else: # If the current adapter is unable to run in background and we are in fact in background now, # fall back to main picture if (not self.refreshAdapter.backgroundCapable and Screens.Standby.inStandby): print( "[EPGRefresh] Adapter is not able to run in background or not available, falling back to MainPictureAdapter" ) self.maybeStopAdapter() self.refreshAdapter = MainPictureAdapter(self.session) self.refreshAdapter.prepare() # Play next service # XXX: we might want to check the return value self.refreshAdapter.play(eServiceReference(service.sref)) # Start Timer delay = service.duration or config.plugins.epgrefresh.interval_seconds.value epgrefreshtimer.add( EPGRefreshTimerEntry(time() + delay, self.refresh, nocheck=True))
def nextService(self): print("[EPGRefresh] Maybe zap to next service") try: service = self.scanServices.pop(0) except IndexError: print("[EPGRefresh] Done refreshing EPG") self.cleanUp() else: Notifications.RemovePopup("Parental control") if self.isServiceProtected(service): skipProtectedServices = config.plugins.epgrefresh.skipProtectedServices.value adapter = config.plugins.epgrefresh.adapter.value if (not self.forcedScan ) or skipProtectedServices == "always" or ( self.forcedScan and Screens.Standby.inStandby is None and skipProtectedServices == "bg_only" and (adapter == "pip" or adapter == "main")): print("[EPGRefresh] Service is protected, skipping!") self.refresh() return if (not self.refreshAdapter.backgroundCapable and Screens.Standby.inStandby): print( "[EPGRefresh] Adapter is not able to run in background or not available, falling back to MainPictureAdapter" ) self.maybeStopAdapter() self.refreshAdapter = MainPictureAdapter(self.session) self.refreshAdapter.prepare() self.refreshAdapter.play(eServiceReference(service.sref)) delay = service.duration or config.plugins.epgrefresh.interval_seconds.value if not delay: delay = 20 if not self.wait.isActive(): self.wait.start(int(delay * 1000), True)
def nextService(self): # Debug print("[EPGRefresh] Maybe zap to next service") try: # Get next reference service = self.scanServices.pop(0) except IndexError: # Debug print("[EPGRefresh] Done refreshing EPG") # Clean up self.cleanUp() else: if self.myEpgCacheInstance is None and config.plugins.epgrefresh.usetimebased.value == False: # get eEPGCache instance if None and eEPGCache-signal based is used print("[EPGRefresh] - myEpgCacheInstance is None. Get it") self.myEpgCacheInstance = eEPGCache.getInstance() self.EpgCacheStateChanged_conn = self.myEpgCacheInstance.cacheState.connect( self._onCacheStateChanged) if self.isServiceProtected(service): if ( not self.forcedScan ) or config.plugins.epgrefresh.skipProtectedServices.value == "always": print("[EPGRefresh] Service is protected, skipping!") self.refresh() return # If the current adapter is unable to run in background and we are in fact in background now, # fall back to main picture if (not self.refreshAdapter.backgroundCapable and Screens.Standby.inStandby): print( "[EPGRefresh] Adapter is not able to run in background or not available, falling back to MainPictureAdapter" ) self.maybeStopAdapter() self.refreshAdapter = MainPictureAdapter(self.session) self.refreshAdapter.prepare() if config.plugins.epgrefresh.usetimebased.value == False: # set timeout timer for eEPGCache-signal based refresh self.epgTimeoutTimer.start(5000, True) # Play next service # XXX: we might want to check the return value self.currentServiceRef = eServiceReference(service.sref) self.refreshAdapter.play(self.currentServiceRef) ref = ServiceReference(service.sref) channelname = ref.getServiceName().replace('\xc2\x86', '').replace( '\xc2\x87', '') print("[EPGRefresh] - Service is: %s" % (str(channelname))) if config.plugins.epgrefresh.usetimebased.value: # Start Timer delay = service.duration or config.plugins.epgrefresh.interval_seconds.value epgrefreshtimer.add( EPGRefreshTimerEntry(time() + delay, self.refresh, nocheck=True))
def prepareRefresh(self): print("[EPGRefresh] About to start refreshing EPG") # Maybe read in configuration try: self.readConfiguration() except Exception as e: print("[EPGRefresh] Error occured while reading in configuration:", e) # This will hold services which are not explicitely in our list additionalServices = [] additionalBouquets = [] # See if we are supposed to read in autotimer services if config.plugins.epgrefresh.inherit_autotimer.value: removeInstance = False try: # Import Instance from Plugins.Extensions.AutoTimer.plugin import autotimer if autotimer is None: removeInstance = True # Create an instance from Plugins.Extensions.AutoTimer.AutoTimer import AutoTimer autotimer = AutoTimer() # Read in configuration autotimer.readXml() except Exception as e: print("[EPGRefresh] Could not inherit AutoTimer Services:", e) else: # Fetch services for timer in autotimer.getEnabledTimerList(): additionalServices.extend( [EPGRefreshService(x, None) for x in timer.services]) additionalBouquets.extend( [EPGRefreshService(x, None) for x in timer.bouquets]) finally: # Remove instance if there wasn't one before if removeInstance: autotimer = None scanServices = [] channelIdList = [] self.addServices(self.services[0], scanServices, channelIdList) serviceHandler = eServiceCenter.getInstance() for bouquet in self.services[1].union(additionalBouquets): myref = eServiceReference(bouquet.sref) list = serviceHandler.list(myref) if list is not None: while 1: s = list.getNext() # TODO: I wonder if its sane to assume we get services here (and not just new lists) if s.valid(): additionalServices.append( EPGRefreshService(s.toString(), None)) else: break del additionalBouquets[:] self.addServices(additionalServices, scanServices, channelIdList) del additionalServices[:] # Debug print("[EPGRefresh] Services we're going to scan:", ', '.join([repr(x) for x in scanServices])) self.maybeStopAdapter() # NOTE: start notification is handled in adapter initializer if config.plugins.epgrefresh.adapter.value.startswith("pip"): hidden = config.plugins.epgrefresh.adapter.value == "pip_hidden" refreshAdapter = PipAdapter(self.session, hide=hidden) elif config.plugins.epgrefresh.adapter.value.startswith("record"): refreshAdapter = RecordAdapter(self.session) else: refreshAdapter = MainPictureAdapter(self.session) if (not refreshAdapter.backgroundCapable and Screens.Standby.inStandby) or not refreshAdapter.prepare(): print( "[EPGRefresh] Adapter is not able to run in background or not available, falling back to MainPictureAdapter" ) refreshAdapter = MainPictureAdapter(self.session) refreshAdapter.prepare() self.refreshAdapter = refreshAdapter self.scanServices = scanServices self.refresh()
scanServices.append(scanservice) channelIdList.append(channelID) del additionalServices[:] # Debug print "[EPGRefresh] Services we're going to scan:", ', '.join([repr(x) for x in scanServices]) self.maybeStopAdapter() # NOTE: start notification is handled in adapter initializer if config.plugins.epgrefresh.adapter.value.startswith("pip"): hidden = config.plugins.epgrefresh.adapter.value == "pip_hidden" refreshAdapter = PipAdapter(self.session, hide=hidden) elif config.plugins.epgrefresh.adapter.value.startswith("record"): refreshAdapter = RecordAdapter(self.session) else: refreshAdapter = MainPictureAdapter(self.session) if (not refreshAdapter.backgroundCapable and Screens.Standby.inStandby) or not refreshAdapter.prepare(): print "[EPGRefresh] Adapter is not able to run in background or not available, falling back to MainPictureAdapter" refreshAdapter = MainPictureAdapter(self.session) refreshAdapter.prepare() self.refreshAdapter = refreshAdapter self.scanServices = scanServices self.refresh() def cleanUp(self): config.plugins.epgrefresh.lastscan.value = int(time()) config.plugins.epgrefresh.lastscan.save() # Eventually force autotimer to parse epg