From 8668ba73a20303e0cb647840488613133ee08105 Mon Sep 17 00:00:00 2001 From: fawkescapacitor Date: Tue, 23 Jul 2024 10:24:45 -0700 Subject: [PATCH 1/2] Fix EZTV search to find all results --- medusa/providers/torrent/json/eztv.py | 49 +++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 6 deletions(-) diff --git a/medusa/providers/torrent/json/eztv.py b/medusa/providers/torrent/json/eztv.py index ffbe3be33c..5cd2cfebfc 100644 --- a/medusa/providers/torrent/json/eztv.py +++ b/medusa/providers/torrent/json/eztv.py @@ -35,6 +35,9 @@ def __init__(self): 'api': urljoin(self.url, 'api/get-torrents') } + # Set Max number of pages to get (about 6 (x 100) pages of new torrents per day) + self.max_pages=6 + # Proper Strings # Miscellaneous Options @@ -54,7 +57,9 @@ def search(self, search_strings, age=0, ep_obj=None, **kwargs): results = [] # Search Params - search_params = {} + search_params = { + 'limit': 100, + } for mode in search_strings: log.debug('Search mode: {0}', mode) @@ -72,12 +77,44 @@ def search(self, search_strings, age=0, ep_obj=None, **kwargs): continue search_url = self.urls['api'] - data = self.session.get_json(search_url, params=search_params) - if not data: - log.debug('No data returned from provider') - continue + page = 1 + + while page and page <= self.max_pages: + # log.warning('Searching page {0}', page) + search_params['page'] = page + response = self.session.get(search_url, params=search_params) + if not response or not response.content: + log.debug('No data returned from provider') + page = None + continue + + try: + jdata = response.json() + except ValueError: + log.debug('No data returned from provider') + page = None + continue + + error = jdata.get('error') + error_code = jdata.get('error_code') + if error: + log_level = logging.DEBUG + log.log(log_level, '{msg} Code: {code}', {'msg': error, 'code': error_code}) + page = None + continue - results += self.parse(data, mode) + # check if we actually got something, if so, then parse it + torrent_rows = jdata.get('torrents', {}) + if torrent_rows: + results += self.parse(jdata, mode) + page = page + 1 + else: + if page == 1: + log.debug('Data returned from provider does not contain any torrents') + else: + log.debug('Page returned from provider does not contain any torrents') + page = None + continue return results From 1c16200c4051fe72b96f5e9077bb6a3733d4df88 Mon Sep 17 00:00:00 2001 From: Dario Date: Tue, 10 Dec 2024 13:18:21 +0100 Subject: [PATCH 2/2] Update eztv.py --- medusa/providers/torrent/json/eztv.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medusa/providers/torrent/json/eztv.py b/medusa/providers/torrent/json/eztv.py index 5cd2cfebfc..5a47e65448 100644 --- a/medusa/providers/torrent/json/eztv.py +++ b/medusa/providers/torrent/json/eztv.py @@ -36,7 +36,7 @@ def __init__(self): } # Set Max number of pages to get (about 6 (x 100) pages of new torrents per day) - self.max_pages=6 + self.max_pages = 6 # Proper Strings