diff --git a/CHANGES.md b/CHANGES.md index 1420005..8f57c2b 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -95,7 +95,7 @@ * Add next run time to Manage/Show Tasks/Daily show update * Change when fetching imdb data, if imdb id is an episode id then try to find and use real show id * Change delete diskcache db in imdbpie when value error (due to change in Python version) -* Change during startup, cleanup any _cleaner.pyc/o to prevent issues when switching python versions +* Change during startup, cleanup any cleaner.pyc/o to prevent issues when switching python versions * Add .pyc cleaner if python version is switched * Change rebrand "SickGear PostProcessing script" to "SickGear Process Media extension" * Change improve setup guide to use the NZBGet version to minimise displayed text based on version @@ -105,6 +105,10 @@ * Change supported Python version 2.7.9-2.7.18 inclusive expanded to 3.7.1-3.8.1 inclusive * Change pidfile creation under Linux 0o644 * Fix long path issues with Windows process media +* Fix search result priority for nzbget +* Change move priority property to SearchResult base class +* Add new test for wanted whole first season (add show) +* Change SickGear-NG version [develop changelog] diff --git a/autoProcessTV/SickGear-NG/SickGear-NG.py b/autoProcessTV/SickGear-NG/SickGear-NG.py index a3c4e25..9fec2dc 100755 --- a/autoProcessTV/SickGear-NG/SickGear-NG.py +++ b/autoProcessTV/SickGear-NG/SickGear-NG.py @@ -51,7 +51,7 @@ # Send "Process Media" requests to SickGear # -# Process Media extension version: 2.4. +# Process Media extension version: 2.5. # diff --git a/sickbeard/classes.py b/sickbeard/classes.py index c60c491..115423f 100644 --- a/sickbeard/classes.py +++ b/sickbeard/classes.py @@ -95,6 +95,10 @@ class SearchResult(LegacySearchResult): # path to cache file self.cache_filepath = '' # type: AnyStr + # priority of result + # -1 = low, 0 = normal, 1 = high + self.priority = 0 # type: int + @property def show_obj(self): # type: (...) -> Optional[sickbeard.tv.TVShow] diff --git a/sickbeard/nzbget.py b/sickbeard/nzbget.py index 3c5f397..bc3a741 100644 --- a/sickbeard/nzbget.py +++ b/sickbeard/nzbget.py @@ -93,7 +93,7 @@ def send_nzb(search_result): sickbeard.TVInfoAPI(cur_ep_obj.show_obj.tvid).config.get('dupekey', ''), cur_ep_obj.show_obj.prodid) dupekey += '-%s.%s' % (cur_ep_obj.season, cur_ep_obj.episode) - if 1 == nzb.priority: + if 1 == search_result.priority: add_to_top = True nzbget_prio = sickbeard.NZBGET_PRIORITY diff --git a/sickbeard/search.py b/sickbeard/search.py index c12be04..f4957c3 100644 --- a/sickbeard/search.py +++ b/sickbeard/search.py @@ -109,12 +109,11 @@ def snatch_episode(result, end_status=SNATCHED): if None is result: return False - result.priority = 0 # -1 = low, 0 = normal, 1 = high if sickbeard.ALLOW_HIGH_PRIORITY: # if it aired recently make it high priority for cur_ep_obj in result.ep_obj_list: if datetime.date.today() - cur_ep_obj.airdate <= datetime.timedelta(days=7) or \ - datetime.date.fromordinal(1) >= cur_ep_obj.airdate: + datetime.date.fromordinal(1) >= cur_ep_obj.airdate: result.priority = 1 if 0 < result.properlevel: end_status = SNATCHED_PROPER diff --git a/tests/show_tests.py b/tests/show_tests.py index f4cc85a..3ec5284 100644 --- a/tests/show_tests.py +++ b/tests/show_tests.py @@ -96,6 +96,39 @@ wanted_tests = [ ), dict( + name='Start, entire season', + show=dict(indexer=1, indexerid=210, quality=Quality.combineQualities([Quality.SDTV], [])), + episodes=[ + dict(season=1, episode=1, status=SKIPPED, quality=Quality.NONE, airdate=datetime.date(2019, 1, 2)), + dict(season=1, episode=2, status=SKIPPED, quality=Quality.NONE, airdate=datetime.date(2019, 1, 1)), + dict(season=1, episode=3, status=SKIPPED, quality=Quality.NONE, airdate=datetime.date(2019, 1, 1)), + dict(season=1, episode=4, status=SKIPPED, quality=Quality.NONE, airdate=datetime.date(2019, 1, 1)), + dict(season=1, episode=5, status=UNAIRED, quality=Quality.NONE, airdate=datetime.date.fromordinal(1)), + dict(season=2, episode=1, status=UNAIRED, quality=Quality.NONE, airdate=datetime.date.fromordinal(1)), + dict(season=2, episode=2, status=UNAIRED, quality=Quality.NONE, airdate=datetime.date.fromordinal(1)), + dict(season=2, episode=3, status=UNAIRED, quality=Quality.NONE, airdate=datetime.date.fromordinal(1)), + dict(season=2, episode=4, status=UNAIRED, quality=Quality.NONE, airdate=datetime.date.fromordinal(1)), + dict(season=3, episode=1, status=UNAIRED, quality=Quality.NONE, airdate=datetime.date.fromordinal(1)), + dict(season=3, episode=2, status=UNAIRED, quality=Quality.NONE, airdate=datetime.date.fromordinal(1)), + dict(season=3, episode=3, status=UNAIRED, quality=Quality.NONE, airdate=datetime.date.fromordinal(1)), + ], + start_wanted=-1, end_wanted=0, + result=dict( + start=dict( + count=4, episodes={ + 1: {1: WANTED, 2: WANTED, 3: WANTED, 4: WANTED, 5: UNAIRED}, + 2: {1: UNAIRED, 2: UNAIRED, 3: UNAIRED, 4: UNAIRED}, + 3: {1: UNAIRED, 2: UNAIRED, 3: UNAIRED} + }), + end=dict( + count=0, episodes={ + 1: {1: WANTED, 2: WANTED, 3: WANTED, 4: WANTED, 5: UNAIRED}, + 2: {1: UNAIRED, 2: UNAIRED, 3: UNAIRED, 4: UNAIRED}, + 3: {1: UNAIRED, 2: UNAIRED, 3: UNAIRED} + })) + ), + + dict( name='End only', show=dict(indexer=1, indexerid=2, quality=Quality.combineQualities([Quality.SDTV], [])), episodes=[ @@ -296,6 +329,51 @@ wanted_tests = [ count=0, episodes={ })) ), + + dict( + name='no episodes, whole first season', + show=dict(indexer=1, indexerid=37, quality=Quality.combineQualities([Quality.SDTV], [])), + episodes=[ + ], + start_wanted=-1, end_wanted=0, + result=dict( + start=dict( + count=0, episodes={ + }), + end=dict( + count=0, episodes={ + })) + ), + + dict( + name='no episodes, whole last season', + show=dict(indexer=1, indexerid=38, quality=Quality.combineQualities([Quality.SDTV], [])), + episodes=[ + ], + start_wanted=0, end_wanted=-1, + result=dict( + start=dict( + count=0, episodes={ + }), + end=dict( + count=0, episodes={ + })) + ), + + dict( + name='no episodes, whole first and last season', + show=dict(indexer=1, indexerid=39, quality=Quality.combineQualities([Quality.SDTV], [])), + episodes=[ + ], + start_wanted=-1, end_wanted=-1, + result=dict( + start=dict( + count=0, episodes={ + }), + end=dict( + count=0, episodes={ + })) + ), ]