From 8e279dfe8a58f737671bec916380cfc6b5ec4f9f Mon Sep 17 00:00:00 2001
From: bone <coder.bone@gmail.com>
Date: Wed, 30 Dec 2015 04:57:30 +1100
Subject: [PATCH] updating a provider cache might entail fetching resources
 from the network and therefore should only be performed if there is a chance
 the result will be needed

---
 sickbeard/search.py | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/sickbeard/search.py b/sickbeard/search.py
index c481515b9..58145a60e 100644
--- a/sickbeard/search.py
+++ b/sickbeard/search.py
@@ -372,8 +372,6 @@ def searchForNeededEpisodes():
 
     didSearch = False
 
-    origThreadName = threading.currentThread().name
-
     show_list = sickbeard.showList
     fromDate = datetime.date.fromordinal(1)
     episodes = []
@@ -383,13 +381,20 @@ def searchForNeededEpisodes():
             sickbeard.name_cache.buildNameCache(curShow)
             episodes.extend(wantedEpisodes(curShow, fromDate))
 
+    if not episodes:
+        # nothing wanted so early out, ie: avoid whatever abritrarily
+        # complex thing a provider cache update entails, for example,
+        # reading rss feeds
+        logger.log(u"No episodes needed.", logger.INFO)
+        return foundResults.values()
+
+    origThreadName = threading.currentThread().name
+
     providers = [x for x in sickbeard.providers.sortedProviderList(sickbeard.RANDOMIZE_PROVIDERS) if x.is_active() and x.enable_daily]
     for curProvider in providers:
         threading.currentThread().name = origThreadName + " :: [" + curProvider.name + "]"
         curProvider.cache.updateCache()
 
-    threading.currentThread().name = origThreadName
-
     for curProvider in providers:
         threading.currentThread().name = origThreadName + " :: [" + curProvider.name + "]"
         curFoundResults = {}
-- 
GitLab