def P_channelinfo(self, request): channelinfo = {} channelepg = {} if "sref" in request.args.keys(): channelepg = getChannelEpg(request.args["sref"][0]) return { "channelinfo": channelepg["events"][0], "channelepg": channelepg["events"] }
def P_epgpop(self, request): events = [] timers = [] if "sref" in request.args.keys(): ev = getChannelEpg(request.args["sref"][0]) events = ev["events"] elif "sstr" in request.args.keys(): ev = getSearchEpg(request.args["sstr"][0]) events = ev["events"] at = False if len(events) > 0: t = getTimers(self.session) timers = t["timers"] try: from Plugins.Extensions.AutoTimer.AutoTimer import AutoTimer at = True except ImportError: pass if config.OpenWebif.webcache.theme.value: theme = config.OpenWebif.webcache.theme.value else: theme = 'original' return { "theme": theme, "events": events, "timers": timers, "at": at, "kinopoisk": getLanguage() }
def P_epgpop(self, request): if "sref" in request.args.keys(): return getChannelEpg(request.args["sref"][0]) elif "sstr" in request.args.keys(): return getSearchEpg(request.args["sstr"][0]) else: return []
def P_epgpop(self, request): events=[] timers=[] if "sref" in request.args.keys(): ev = getChannelEpg(request.args["sref"][0]) events = ev["events"] elif "sstr" in request.args.keys(): fulldesc = False if "full" in request.args.keys(): fulldesc=True bouquetsonly = False if "bouquetsonly" in request.args.keys(): bouquetsonly = True ev = getSearchEpg(request.args["sstr"][0],None,fulldesc,bouquetsonly) events = sorted(ev["events"], key=lambda ev: ev['begin_timestamp']) at = False if len(events) > 0: t = getTimers(self.session) timers = t["timers"] try: from Plugins.Extensions.AutoTimer.AutoTimer import AutoTimer at = True except ImportError: pass if config.OpenWebif.webcache.theme.value: theme = config.OpenWebif.webcache.theme.value else: theme = 'original' return { "theme":theme, "events": events , "timers" : timers , "at" : at, "kinopoisk": getLanguage()}
def P_channelinfo(self, request): channelinfo = {} channelepg = {} if "sref" in request.args.keys(): sref=request.args["sref"][0] channelepg = getChannelEpg(sref) # Detect if sRef contains a stream if ("://" in sref): # Repair sRef (URL part gets unquoted somewhere in between but MUST NOT) sref = ":".join(sref.split(':')[:10]) + ":" + quote(":".join(sref.split(':')[10:-1])) + ":" + sref.split(':')[-1] # Get service name from last part of the sRef channelinfo['sname'] = sref.split(':')[-1] # Use quoted sref when stream has EPG if len(channelepg['events']) > 1: channelepg['events'][0]['sref'] = sref else: # todo: Get service name channelinfo['sname'] = "" # Assume some sane blank defaults channelinfo['sref'] = sref channelinfo['title'] = "" channelinfo['picon'] = "" channelinfo['shortdesc'] = "" channelinfo['longdesc'] = "" channelinfo['begin'] = 0 channelinfo['end'] = 0 # Got EPG information? if len(channelepg['events']) > 1: # Return the EPG return { "channelinfo": channelepg["events"][0], "channelepg": channelepg["events"] } else: # Make sure at least some basic channel info gets returned when there is no EPG return { "channelinfo": channelinfo, "channelepg": None }
def P_epgpop(self, request): events = [] timers = [] if "sref" in request.args.keys(): ev = getChannelEpg(request.args["sref"][0]) events = ev["events"] elif "sstr" in request.args.keys(): fulldesc = False if "full" in request.args.keys(): fulldesc = True bouquetsonly = False if "bouquetsonly" in request.args.keys(): bouquetsonly = True ev = getSearchEpg( request.args["sstr"][0], None, fulldesc, bouquetsonly) events = sorted(ev["events"], key=lambda ev: ev['begin_timestamp']) if len(events) > 0: t = getTimers(self.session) timers = t["timers"] return { "theme": THEMES[0], "events": events, "timers": timers, "at": False, "kinopoisk": getLanguage() }
def P_epgpop(self, request): if "sref" in request.args.keys(): event = getChannelEpg(request.args["sref"][0]) event['kinopoisk'] = getLanguage() return event elif "sstr" in request.args.keys(): event = getSearchEpg(request.args["sstr"][0]) event['kinopoisk'] = getLanguage() return event else: return []
def P_epgservice(self, request): res = self.testMandatoryArguments(request, ["sRef"]) if res: return res begintime = -1 if "time" in request.args.keys(): try: begintime = int(request.args["time"][0]) except ValueError: pass endtime = -1 if "endTime" in request.args.keys(): try: endtime = int(request.args["endTime"][0]) except ValueError: pass return getChannelEpg(request.args["sRef"][0], begintime, endtime, self.isJson)
def P_epgservice(self, request): res = self.testMandatoryArguments(request, ["sRef"]) if res: return res begintime = -1 if "time" in request.args.keys(): try: begintime = int(request.args["time"][0]) except ValueError: pass endtime = -1 if "endTime" in request.args.keys(): try: endtime = int(request.args["endTime"][0]) except ValueError: pass self.isGZ=True return getChannelEpg(request.args["sRef"][0], begintime, endtime)
def P_epgpop(self, request): events = [] timers = [] if "sref" in request.args.keys(): ev = getChannelEpg(request.args["sref"][0]) events = ev["events"] elif "sstr" in request.args.keys(): ev = getSearchEpg(request.args["sstr"][0]) events = ev["events"] at = False if len(events) > 0: t = getTimers(self.session) timers = t["timers"] try: from Plugins.Extensions.AutoTimer.AutoTimer import AutoTimer at = True except ImportError: pass if config.OpenWebif.webcache.theme.value: theme = config.OpenWebif.webcache.theme.value else: theme = "original" return {"theme": theme, "events": events, "timers": timers, "at": at, "kinopoisk": getLanguage()}
begintime = -1 if "time" in request.args.keys(): try: begintime = int(request.args["time"][0]) except Exception, e: pass endtime = -1 if "endTime" in request.args.keys(): try: endtime = int(request.args["endTime"][0]) except Exception, e: pass return getChannelEpg(request.args["sRef"][0], begintime, endtime) def P_epgservicenow(self, request): res = self.testMandatoryArguments(request, ["sRef"]) if res: return res return getNowNextEpg(request.args["sRef"][0], 0) def P_epgservicenext(self, request): res = self.testMandatoryArguments(request, ["sRef"]) if res: return res return getNowNextEpg(request.args["sRef"][0], 1)
begintime = -1 if "time" in request.args.keys(): try: begintime = int(request.args["time"][0]) except Exception, e: pass endtime = -1 if "endTime" in request.args.keys(): try: endtime = int(request.args["endTime"][0]) except Exception, e: pass self.isGZ = True return getChannelEpg(request.args["sRef"][0], begintime, endtime) def P_epgservicenow(self, request): res = self.testMandatoryArguments(request, ["sRef"]) if res: return res return getNowNextEpg(request.args["sRef"][0], 0) def P_epgservicenext(self, request): res = self.testMandatoryArguments(request, ["sRef"]) if res: return res return getNowNextEpg(request.args["sRef"][0], 1) def P_epgsimilar(self, request): res = self.testMandatoryArguments(request, ["sRef", "eventid"])
def getCurrentFullInfo(session): now = next = {} inf = getCurrentService(session) inf['tuners'] = list(map(chr, range(65, 65 + nimmanager.getSlotCount()))) try: info = session.nav.getCurrentService().info() except BaseException: info = None try: subservices = session.nav.getCurrentService().subServices() except BaseException: subservices = None try: audio = session.nav.getCurrentService().audioTracks() except BaseException: audio = None try: ref = session.nav.getCurrentlyPlayingServiceReference().toString() except BaseException: ref = None if ref is not None: inf['sref'] = '_'.join(ref.split(':', 10)[:10]) inf['srefv2'] = ref inf['picon'] = getPicon(ref) inf['wide'] = inf['aspect'] in (3, 4, 7, 8, 0xB, 0xC, 0xF, 0x10) inf['ttext'] = getServiceInfoString(info, iServiceInformation.sTXTPID) inf['crypt'] = getServiceInfoString( info, iServiceInformation.sIsCrypted) inf['subs'] = str( subservices and subservices.getNumberOfSubservices() > 0) else: inf['sref'] = None inf['picon'] = None inf['wide'] = None inf['ttext'] = None inf['crypt'] = None inf['subs'] = None inf['date'] = strftime("%d.%m.%Y", (localtime())) inf['dolby'] = False if audio: n = audio.getNumberOfTracks() idx = 0 while idx < n: i = audio.getTrackInfo(idx) description = i.getDescription() if "AC3" in description \ or "DTS" in description \ or "Dolby Digital" in description: inf['dolby'] = True idx += 1 try: feinfo = session.nav.getCurrentService().frontendInfo() except BaseException: feinfo = None frontendData = feinfo and feinfo.getAll(True) if frontendData is not None: cur_info = feinfo.getTransponderData(True) inf['tunertype'] = frontendData.get("tuner_type", "UNKNOWN") if frontendData.get("system", -1) == 1: inf['tunertype'] = "DVB-S2" inf['tunernumber'] = frontendData.get("tuner_number") orb = getOrbitalText(cur_info) inf['orbital_position'] = orb if cur_info: if cur_info.get('tuner_type') == "DVB-S": inf['orbital_position'] = _("Orbital Position") + ': ' + orb else: inf['tunernumber'] = "N/A" inf['tunertype'] = "N/A" try: frontendStatus = feinfo and feinfo.getFrontendStatus() except BaseException: frontendStatus = None if frontendStatus is not None: percent = frontendStatus.get("tuner_signal_quality") if percent is not None: inf['snr'] = int(percent * 100 / 65535) inf['snr_db'] = inf['snr'] percent = frontendStatus.get("tuner_signal_quality_db") if percent is not None: inf['snr_db'] = "%3.02f dB" % (percent / 100.0) percent = frontendStatus.get("tuner_signal_power") if percent is not None: inf['agc'] = int(percent * 100 / 65535) percent = frontendStatus.get("tuner_bit_error_rate") if percent is not None: inf['ber'] = int(percent * 100 / 65535) else: inf['snr'] = 0 inf['snr_db'] = inf['snr'] inf['agc'] = 0 inf['ber'] = 0 try: recordings = session.nav.getRecordings() except BaseException: recordings = None inf['rec_state'] = False if recordings: inf['rec_state'] = True ev = getChannelEpg(ref) if len(ev['events']) > 1: now = ev['events'][0] next = ev['events'][1] if len(now['title']) > 50: now['title'] = now['title'][0:48] + "..." if len(next['title']) > 50: next['title'] = next['title'][0:48] + "..." return {"info": inf, "now": now, "next": next}