def sources(self, url, hostDict, hostprDict): try: sources = [] if url is None: return sources data = urlparse.parse_qs(url) data = dict([(i, data[i][0]) if data[i] else (i, '') for i in data]) query = '%s S%02dE%02d' % ( data['tvshowtitle'], int(data['season']), int(data['episode']) ) if 'tvshowtitle' in data else '%s' % data['imdb'] query = re.sub('(\\\|/| -|:|;|\*|\?|"|\'|<|>|\|)', ' ', query) token = client.getHTML(self.token) token = json.loads(token)["token"] if 'tvshowtitle' in data: search_link = self.tvsearch.format(token, urllib.quote_plus(query), 'format=json_extended') else: search_link = self.msearch.format(token, data['imdb'], 'format=json_extended') time.sleep(2) rjson = client.request(search_link, headers=self.headers) files = json.loads(rjson)['torrent_results'] for file in files: name = file["title"] quality, info = source_utils.get_release_quality(name, name) size = source_utils.convert_size(file["size"]) info.append(size) url = file["download"] url = url.split('&tr')[0] info = ' | '.join(info) if control.setting('torrent.rd_check') == 'true': checked = rd_check.rd_cache_check(url) if checked: sources.append({ 'source': 'Cached Torrent', 'quality': quality, 'language': 'en', 'url': checked, 'info': info, 'direct': False, 'debridonly': True }) else: sources.append({ 'source': 'Torrent', 'quality': quality, 'language': 'en', 'url': url, 'info': info, 'direct': False, 'debridonly': True }) return sources except Exception: failure = traceback.format_exc() log_utils.log('---Torrapi Testing - Exception: \n' + str(failure)) return sources
def sources(self, url, hostDict, hostprDict): try: sources = [] if url is None: return sources if debrid.status() is False: raise Exception() if debrid.torrent_enabled() is False: raise Exception() data = urlparse.parse_qs(url) data = dict([(i, data[i][0]) if data[i] else (i, '') for i in data]) query = '%s S%02dE%02d' % (data['tvshowtitle'], int(data['season']), int(data['episode'])) if 'tvshowtitle' in data else '%s' % data['imdb'] query = re.sub('(\\\|/| -|:|;|\*|\?|"|\'|<|>|\|)', ' ', query) token = client.request(self.token) token = json.loads(token)["token"] if 'tvshowtitle' in data: search_link = self.tvsearch.format(token, urllib.quote_plus(query), 'format=json_extended') else: search_link = self.msearch.format(token, data['imdb'], 'format=json_extended') time.sleep(2) rjson = client.request(search_link) files = json.loads(rjson)['torrent_results'] for file in files: name = file["title"] quality, info = source_utils.get_release_quality(name, name) size = source_utils.convert_size(file["size"]) info.append(size) info = ' | '.join(info) url = file["download"] url = url.split('&tr')[0] sources.append({'source': 'Torrent', 'quality': quality, 'language': 'en', 'url': url, 'info': info, 'direct': False, 'debridonly': True}) return sources except: return sources