diff --git a/sickbeard/providers/generic.py b/sickbeard/providers/generic.py index 5a9fadc..ec71cd8 100644 --- a/sickbeard/providers/generic.py +++ b/sickbeard/providers/generic.py @@ -232,7 +232,13 @@ class GenericProvider: searchItems = {} itemList = [] + searched_scene_season = None for epObj in episodes: + scene_season = epObj.scene_season + if seasonSearch and searched_scene_season: + if scene_season == searched_scene_season: + continue + if not epObj.show.air_by_date: if epObj.scene_season == 0 or epObj.scene_episode == 0: logger.log( @@ -257,18 +263,17 @@ class GenericProvider: # remove duplicate items itemList = [i for n, i in enumerate(itemList) if i not in itemList[n + 1:]] + searchItems[epObj] = itemList - if epObj.episode in searchItems: - searchItems[epObj] += itemList - else: - searchItems[epObj] = itemList + # mark season searched so we can skip anymore searches of this season if this is a season pack search + searched_scene_season = scene_season # if we have cached results return them. if len(results): return results - for ep_obj, items in searchItems.items(): - for item in items: + for ep_obj in searchItems: + for item in searchItems[ep_obj]: (title, url) = self._get_title_and_url(item) diff --git a/sickbeard/search.py b/sickbeard/search.py index f8e945b..0a2e160 100644 --- a/sickbeard/search.py +++ b/sickbeard/search.py @@ -317,7 +317,10 @@ def filterSearchResults(show, results): def searchProviders(queueItem, show, season, episodes, seasonSearch=False, manualSearch=False): - logger.log(u"Searching for stuff we need from " + show.name + " season " + str(season)) + if seasonSearch: + logger.log(u"Searching for " + show.name + " season " + str(season) + " pack") + else: + logger.log(u"Searching for episodes we need from " + show.name + " season " + str(season)) providers = [x for x in sickbeard.providers.sortedProviderList() if x.isActive()]