From c922a03fd7670f8a2f565c25ac3bbd51228263ca Mon Sep 17 00:00:00 2001 From: Dustyn Gibson <miigotu@gmail.com> Date: Wed, 25 Nov 2015 16:50:32 -0800 Subject: [PATCH] Simplify and clean up getOverview archive on first match regardless if in allowed or preferred Fixes https://github.com/SickRage/sickrage-issues/issues/84 --- sickbeard/tv.py | 40 +++++++++++++--------------------------- 1 file changed, 13 insertions(+), 27 deletions(-) diff --git a/sickbeard/tv.py b/sickbeard/tv.py index ac9d597d9..93ef682db 100644 --- a/sickbeard/tv.py +++ b/sickbeard/tv.py @@ -1298,37 +1298,23 @@ class TVShow(object): return Overview.SKIPPED elif epStatus in Quality.ARCHIVED: return Overview.GOOD - elif epStatus in Quality.DOWNLOADED + Quality.SNATCHED + Quality.SNATCHED_PROPER + Quality.FAILED + Quality.SNATCHED_BEST: - - _, bestQualities = Quality.splitQuality(self.quality) # @UnusedVariable - if bestQualities: - maxBestQuality = max(bestQualities) - minBestQuality = min(bestQualities) - else: - maxBestQuality = None - minBestQuality = None - + elif epStatus in Quality.FAILED: + return Overview.WANTED + elif epStatus in Quality.SNATCHED + Quality.SNATCHED_PROPER + Quality.SNATCHED_BEST: + return Overview.SNATCHED + elif epStatus in Quality.DOWNLOADED: + anyQualities, bestQualities = Quality.splitQuality(self.quality) # @UnusedVariable epStatus, curQuality = Quality.splitCompositeStatus(epStatus) - if epStatus == FAILED: - return Overview.WANTED - if epStatus == DOWNLOADED and curQuality == Quality.UNKNOWN: - return Overview.QUAL - elif epStatus in (SNATCHED, SNATCHED_PROPER, SNATCHED_BEST): - return Overview.SNATCHED - # if they don't want re-downloads then we call it good if they have anything - elif maxBestQuality is None: - return Overview.GOOD - # if the want only first match and already have one call it good - elif self.archive_firstmatch and curQuality in bestQualities: - return Overview.GOOD - # if they want only first match and current quality is higher than minimal best quality call it good - elif self.archive_firstmatch and minBestQuality is not None and curQuality > minBestQuality: + if curQuality not in anyQualities + bestQualities: + if curQuality != Quality.UNKNOWN and curQuality > max(anyQualities): + return Overview.GOOD + else: + return Overview.QUAL + elif self.archive_firstmatch: return Overview.GOOD - # if they have one but it's not the best they want then mark it as qual - elif curQuality < maxBestQuality: + elif bestQualities and curQuality not in bestQualities: return Overview.QUAL - # if it's >= maxBestQuality then it's good else: return Overview.GOOD -- GitLab