def nhlResolve(url): try: try: url, selectGame, side = re.compile('(.+?)x0xe(.+?)x0xe(.+?)$').findall(url)[0] except: selectGame, side = None, None header = '|' + urllib.urlencode({'User-Agent': 'PS4 libhttp/1.76 (PlayStation 4)'}) base = re.compile('(.*/).+[.]m3u8').findall(url) if not url.endswith('m3u8'): return player().run(url + header, selectGame ,side) result = client.request(url) result = re.compile('BANDWIDTH=(\d*)\n(.+?[.]m3u8)').findall(result) result = [(int(int(i[0]) / 1000), i[1]) for i in result] result = sorted(result, reverse=True) result = [(str(i[0]), base[0] + i[1]) for i in result] q = [i[0] for i in result] u = [i[1] for i in result] select = control.selectDialog(q, 'Pick A Bandwidth') if select == -1: return url = u[select] player().run(url + header, selectGame ,side) except: return
def sourcesDialog(self): try: l = '00 | [B]%s[/B]' % control.lang(30408).encode('utf-8').upper() sourceList = [l] ; urlList = [''] ; providerList = [''] for i in self.sources: sourceList.append(i['label']) ; urlList.append(i['url']) ; providerList.append(i['provider']) select = control.selectDialog(sourceList) if select == 0: return self.sourcesDirect() if select == -1: return 'close://' url = self.sourcesResolve(urlList[select], providerList[select]) self.selectedSource = self.sources[select-1]['label'] return url except: return
def sourcesDialog(self): try: l = "00 | [B]%s[/B]" % control.lang(30408).encode("utf-8").upper() sourceList = [l] urlList = [""] providerList = [""] for i in self.sources: sourceList.append(i["label"]) urlList.append(i["url"]) providerList.append(i["provider"]) select = control.selectDialog(sourceList) if select == 0: return self.sourcesDirect() if select == -1: return "close://" url = self.sourcesResolve(urlList[select], providerList[select]) self.selectedSource = self.sources[select - 1]["label"] return url except: return
def resolveUrl(name, url, audio, image, fanart, playable, content): try: if '.f4m' in url: label = cleantitle(name) ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit( '.')[-1].replace('/', '').lower() if not ext == 'f4m': raise Exception() from modules.libraries.f4mproxy.F4mProxy import f4mProxyHelper return f4mProxyHelper().playF4mLink(url, label, None, None, '', image) #legacy issue, will be removed later if 'afdah.org' in url and not '</source>' in url: url += '<source>afdah</source>' if '</source>' in url: source = re.compile('<source>(.+?)</source>').findall(url)[0] url = re.compile('(.+?)<source>').findall(url)[0] for i in ['_mv', '_tv', '_mv_tv']: try: call = __import__('modules.sources.%s%s' % (source, i), globals(), locals(), ['object'], -1).source() except: pass from modules import sources d = sources.sources() url = call.get_sources(url, d.hosthdfullDict, d.hostsdfullDict, d.hostlocDict) if type(url) == list and len(url) == 1: url = url[0]['url'] elif type(url) == list: url = sorted(url, key=lambda k: k['quality']) for i in url: i.update( (k, '720p') for k, v in i.iteritems() if v == 'HD') for i in url: i.update( (k, '480p') for k, v in i.iteritems() if v == 'SD') q = [i['quality'].upper() for i in url] u = [i['url'] for i in url] select = control.selectDialog(q) if select == -1: return url = u[select] url = call.resolve(url) from modules import resolvers url = resolvers.request(url) if type(url) == list and len(url) == 1: url = url[0]['url'] elif type(url) == list: url = sorted(url, key=lambda k: k['quality']) for i in url: i.update((k, '720p') for k, v in i.iteritems() if v == 'HD') for i in url: i.update((k, '480p') for k, v in i.iteritems() if v == 'SD') q = [i['quality'].upper() for i in url] u = [i['url'] for i in url] select = control.selectDialog(q) if select == -1: return url = u[select] if url == None: raise Exception() except: return control.infoDialog('Unplayable stream') pass if playable == 'true': item = control.item(path=url) return control.resolve(int(sys.argv[1]), True, item) else: label = cleantitle(name) item = control.item(path=url, iconImage=image, thumbnailImage=image) item.setInfo(type='Video', infoLabels={'title': label}) control.playlist.clear() control.player.play(url, item)
def resolveUrl(name, url, audio, image, fanart, playable, content): try: if '.f4m'in url: label = cleantitle(name) ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower() if not ext == 'f4m': raise Exception() from modules.libraries.f4mproxy.F4mProxy import f4mProxyHelper return f4mProxyHelper().playF4mLink(url, label, None, None,'',image) #legacy issue, will be removed later if 'afdah.org' in url and not '</source>' in url: url += '<source>afdah</source>' if '</source>' in url: source = re.compile('<source>(.+?)</source>').findall(url)[0] url = re.compile('(.+?)<source>').findall(url)[0] for i in ['_mv', '_tv', '_mv_tv']: try: call = __import__('modules.sources.%s%s' % (source, i), globals(), locals(), ['object'], -1).source() except: pass from modules import sources ; d = sources.sources() url = call.get_sources(url, d.hosthdfullDict, d.hostsdfullDict, d.hostlocDict) if type(url) == list and len(url) == 1: url = url[0]['url'] elif type(url) == list: url = sorted(url, key=lambda k: k['quality']) for i in url: i.update((k, '720p') for k, v in i.iteritems() if v == 'HD') for i in url: i.update((k, '480p') for k, v in i.iteritems() if v == 'SD') q = [i['quality'].upper() for i in url] u = [i['url'] for i in url] select = control.selectDialog(q) if select == -1: return url = u[select] url = call.resolve(url) from modules import resolvers url = resolvers.request(url) if type(url) == list and len(url) == 1: url = url[0]['url'] elif type(url) == list: url = sorted(url, key=lambda k: k['quality']) for i in url: i.update((k, '720p') for k, v in i.iteritems() if v == 'HD') for i in url: i.update((k, '480p') for k, v in i.iteritems() if v == 'SD') q = [i['quality'].upper() for i in url] u = [i['url'] for i in url] select = control.selectDialog(q) if select == -1: return url = u[select] if url == None: raise Exception() except: return control.infoDialog('Unplayable stream') pass if playable == 'true': item = control.item(path=url) return control.resolve(int(sys.argv[1]), True, item) else: label = cleantitle(name) item = control.item(path=url, iconImage=image, thumbnailImage=image) item.setInfo( type='Video', infoLabels = {'title': label} ) control.playlist.clear() control.player.play(url, item)