From b8a499b3d3ceaef16d0dac914a33e7ad03d13a03 Mon Sep 17 00:00:00 2001 From: echel0n Date: Tue, 13 May 2014 13:38:32 -0700 Subject: [PATCH] Fix for manual and backlog searches to insure maximum results are returned --- sickbeard/search.py | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/sickbeard/search.py b/sickbeard/search.py index 88e62be4..7cf55977 100644 --- a/sickbeard/search.py +++ b/sickbeard/search.py @@ -319,7 +319,7 @@ def searchProviders(queueItem, show, season, episodes, seasonSearch=False, manua logger.ERROR) return [] - for provider in providers: + for providerNum, provider in enumerate(providers): foundResults = {provider.name:{}} try: @@ -523,20 +523,25 @@ def searchProviders(queueItem, show, season, episodes, seasonSearch=False, manua finalResults.append(bestResult) - logger.log(u"Checking if we should snatch " + bestResult.name, logger.DEBUG) - any_qualities, best_qualities = Quality.splitQuality(show.quality) + if manualSearch: + logger.log(u"Checking if we should snatch " + bestResult.name, logger.DEBUG) + any_qualities, best_qualities = Quality.splitQuality(show.quality) - # if there is a redownload that's higher than this then we definitely need to keep looking - if best_qualities and bestResult.quality == max(best_qualities): - logger.log(u"Found a highest quality archive match to snatch [" + bestResult.name + "]", logger.DEBUG) - queueItem.results = [bestResult] - return queueItem + # if there is a redownload that's higher than this then we definitely need to keep looking + if best_qualities and bestResult.quality == max(best_qualities): + logger.log(u"Found a highest quality archive match to snatch [" + bestResult.name + "]", logger.DEBUG) + queueItem.results = [bestResult] + return queueItem - # if there's no redownload that's higher (above) and this is the highest initial download then we're good - elif any_qualities and bestResult.quality in any_qualities: - logger.log(u"Found a initial quality match to snatch [" + bestResult.name + "]", logger.DEBUG) - queueItem.results = [bestResult] - return queueItem + # if there's no redownload that's higher (above) and this is the highest initial download then we're good + elif any_qualities and bestResult.quality in any_qualities: + logger.log(u"Found a initial quality match to snatch [" + bestResult.name + "]", logger.DEBUG) + queueItem.results = [bestResult] + return queueItem + + # make sure we search every provider for results + if providerNum < len(providers): + continue # remove duplicates and insures snatch of highest quality from results for i1, result1 in enumerate(finalResults):