def handle(self, link, item, download=False, popups=False, close=True): try: title = item['metadata'].title(extended=True, prefix=True, pack=True) except: title = item['title'] try: pack = item['metadata'].pack() except: pack = False try: season = item['information']['season'] episode = item['information']['episode'] except: season = None episode = None return debridold.resolver(link, debrid=self.id(), title=title, season=season, episode=episode, pack=pack, close=close, source=item['source'])
def sourcesResolve(self, item, info=False): try: self.url = None u = url = item['url'] d = item['debrid'] ; direct = item['direct'] local = item.get('local', False) provider = item['provider'] call = [i[1] for i in self.sourceDict if i[0] == provider][0] u = url = call.resolve(url) if url == None or (not '://' in str(url) and not local): raise Exception() if not local: url = url[8:] if url.startswith('stack:') else url urls = [] for part in url.split(' , '): u = part if not d == '': part = debrid.resolver(part, d) elif not direct == True: hmf = urlresolver.HostedMediaFile(url=u, include_disabled=True, include_universal=False) if hmf.valid_url() == True: part = hmf.resolve() urls.append(part) url = 'stack://' + ' , '.join(urls) if len(urls) > 1 else urls[0] if url == False or url == None: raise Exception() ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower() if ext == 'rar': raise Exception() try: headers = url.rsplit('|', 1)[1] except: headers = '' headers = urllib.quote_plus(headers).replace('%3D', '=') if ' ' in headers else headers headers = dict(urlparse.parse_qsl(headers)) if url.startswith('http') and '.m3u8' in url: result = client.request(url.split('|')[0], headers=headers, output='geturl', timeout='20') if result == None: raise Exception() elif url.startswith('http'): result = client.request(url.split('|')[0], headers=headers, output='chunk', timeout='20') if result == None: raise Exception() self.url = url return url except: if info == True: self.errorForSources() return
def handle(self, link, item, download = False, popups = False, close = True): try: title = item['metadata'].title(extended = True, prefix = True) except: title = item['title'] try: season = item['information']['season'] episode = item['information']['episode'] except: season = None episode = None return debridold.resolver(link, debrid = self.id(), title = title, season = season, episode = episode, close = close, source = item['source'])
def sourcesResolve(self, item, info=False): try: self.url = None u = url = item['url'] d = item['debrid'] ; direct = item['direct'] provider = item['provider'].lower() if not provider.endswith(('_mv', '_tv', '_mv_tv')): sourceDict = [] for package, name, is_pkg in pkgutil.walk_packages(__path__): sourceDict.append((name, is_pkg)) provider = [i[0] for i in sourceDict if i[1] == False and i[0].startswith(provider + '_')][0] source = __import__(provider, globals(), locals(), [], -1).source() u = url = source.resolve(url) if url == None: raise Exception() if not d == '': url = debrid.resolver(url, d) elif not direct == True: hmf = urlresolver.HostedMediaFile(url=u, include_disabled=True, include_universal=False) if hmf.valid_url() == True: url = hmf.resolve() if url == False or url == None: raise Exception() ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower() if ext == 'rar': raise Exception() try: headers = url.rsplit('|', 1)[1] except: headers = '' headers = urllib.quote_plus(headers).replace('%3D', '=') if ' ' in headers else headers headers = dict(urlparse.parse_qsl(headers)) if url.startswith('http') and '.m3u8' in url: result = client.request(url.split('|')[0], headers=headers, output='geturl', timeout='20') if result == None: raise Exception() elif url.startswith('http'): result = client.request(url.split('|')[0], headers=headers, output='chunk', timeout='20') if result == None: raise Exception() self.url = url return url except: if info == True: self.errorForSources() return
def sourcesResolve(self, item): try: self.url = None u = url = item['url'] d = item['debrid'] ; direct = item['direct'] provider = item['provider'].lower() if not provider.endswith(('_mv', '_tv', '_mv_tv')): sourceDict = [] for package, name, is_pkg in pkgutil.walk_packages(__path__): sourceDict.append((name, is_pkg)) provider = [i[0] for i in sourceDict if i[1] == False and i[0].startswith(provider + '_')][0] source = __import__(provider, globals(), locals(), [], -1).source() url = source.resolve(url) if url == None: raise Exception() if not d == '': self.url = url = debrid.resolver(url, d) if not url == None: return url else: raise Exception() elif not direct == True: try: url = [(i, i.get_host_and_id(u)) for i in self.resolvers] url = [i for i in url if not i[1] == False] url = [(i[0], i[0].valid_url(u, i[1][0]), i[1][0], i[1][1]) for i in url] url = [i for i in url if not i[1] == False][0] url = url[0].get_media_url(url[2], url[3]) except: url = False if url == False: raise Exception() try: headers = dict(urlparse.parse_qsl(url.rsplit('|', 1)[1])) except: headers = dict('') if url.startswith('http') and '.m3u8' in url: result = client.request(url.split('|')[0], headers=headers, output='geturl', timeout='20') if result == None: raise Exception() elif url.startswith('http'): result = client.request(url.split('|')[0], headers=headers, output='chunk', timeout='20') if result == None: raise Exception() self.url = url return url except: return
def handle(self, link, item, download = False, popups = False, close = True, select = False, cloud = False): try: title = item['metadata'].title(extended = True, prefix = True, pack = True) except: title = item['title'] try: pack = item['metadata'].pack() except: pack = False try: hash = item['hash'] except: hash = None try: cached = item['cache'][HandleRapidPremium.Id] except: cached = False try: season = item['information']['season'] episode = item['information']['episode'] except: season = None episode = None return debridold.resolver(link, debrid = self.id(), title = title, season = season, episode = episode, pack = pack, close = close, source = item['source'], cached = cached, hash = hash, select = select, cloud = cloud)