mirror of
https://github.com/moparisthebest/SickRage
synced 2024-12-13 11:32:20 -05:00
Fixed issues with added new shows not showing any episodes.
Fixed issues with duplicate downloads of the same season/episode caused by multithreading.
This commit is contained in:
parent
fc94243546
commit
9084d7de19
@ -111,6 +111,11 @@ def snatchEpisode(result, endStatus=SNATCHED):
|
|||||||
|
|
||||||
if result is None: return False
|
if result is None: return False
|
||||||
|
|
||||||
|
# don't notify when we re-download an episode
|
||||||
|
for curEpObj in result.episodes:
|
||||||
|
if curEpObj.status in Quality.SNATCHED + Quality.SNATCHED_PROPER + Quality.SNATCHED_BEST:
|
||||||
|
return 2
|
||||||
|
|
||||||
result.priority = 0 # -1 = low, 0 = normal, 1 = high
|
result.priority = 0 # -1 = low, 0 = normal, 1 = high
|
||||||
if sickbeard.ALLOW_HIGH_PRIORITY:
|
if sickbeard.ALLOW_HIGH_PRIORITY:
|
||||||
# if it aired recently make it high priority
|
# if it aired recently make it high priority
|
||||||
|
@ -126,11 +126,12 @@ class ManualSearchQueueItem(generic_queue.QueueItem):
|
|||||||
for foundResult in [item for sublist in foundResults for item in sublist]:
|
for foundResult in [item for sublist in foundResults for item in sublist]:
|
||||||
time.sleep(0.01)
|
time.sleep(0.01)
|
||||||
|
|
||||||
# just use the first result for now
|
|
||||||
logger.log(u"Downloading " + foundResult.name + " from " + foundResult.provider.name)
|
|
||||||
|
|
||||||
result = search.snatchEpisode(foundResult)
|
result = search.snatchEpisode(foundResult)
|
||||||
|
|
||||||
|
# duplicate snatch detected due to multithreading
|
||||||
|
if result == 2:
|
||||||
|
continue
|
||||||
|
|
||||||
providerModule = foundResult.provider
|
providerModule = foundResult.provider
|
||||||
if not result:
|
if not result:
|
||||||
ui.notifications.error(
|
ui.notifications.error(
|
||||||
@ -138,9 +139,10 @@ class ManualSearchQueueItem(generic_queue.QueueItem):
|
|||||||
elif providerModule == None:
|
elif providerModule == None:
|
||||||
ui.notifications.error('Provider is configured incorrectly, unable to download')
|
ui.notifications.error('Provider is configured incorrectly, unable to download')
|
||||||
|
|
||||||
self.success = result
|
# just use the first result for now
|
||||||
|
logger.log(u"Downloading " + foundResult.name + " from " + foundResult.provider.name)
|
||||||
|
|
||||||
self.finish()
|
self.success = result
|
||||||
|
|
||||||
def process(self, curProvider):
|
def process(self, curProvider):
|
||||||
if self.ep_obj.show.air_by_date:
|
if self.ep_obj.show.air_by_date:
|
||||||
@ -154,9 +156,9 @@ class ManualSearchQueueItem(generic_queue.QueueItem):
|
|||||||
# don't let this linger if something goes wrong
|
# don't let this linger if something goes wrong
|
||||||
if self.success == None:
|
if self.success == None:
|
||||||
self.success = False
|
self.success = False
|
||||||
|
else:
|
||||||
generic_queue.QueueItem.finish(self)
|
generic_queue.QueueItem.finish(self)
|
||||||
|
|
||||||
|
|
||||||
class RSSSearchQueueItem(generic_queue.QueueItem):
|
class RSSSearchQueueItem(generic_queue.QueueItem):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
generic_queue.QueueItem.__init__(self, 'RSS Search', RSS_SEARCH)
|
generic_queue.QueueItem.__init__(self, 'RSS Search', RSS_SEARCH)
|
||||||
@ -186,7 +188,11 @@ class RSSSearchQueueItem(generic_queue.QueueItem):
|
|||||||
if len(foundResults):
|
if len(foundResults):
|
||||||
for curResult in [item for sublist in foundResults for item in sublist]:
|
for curResult in [item for sublist in foundResults for item in sublist]:
|
||||||
time.sleep(0.01)
|
time.sleep(0.01)
|
||||||
search.snatchEpisode(curResult)
|
result = search.snatchEpisode(curResult)
|
||||||
|
|
||||||
|
# duplicate snatch detected due to multithreading
|
||||||
|
if result == 2:
|
||||||
|
continue
|
||||||
else:
|
else:
|
||||||
logger.log(u"RSS Feed search found nothing to snatch ...")
|
logger.log(u"RSS Feed search found nothing to snatch ...")
|
||||||
|
|
||||||
@ -289,7 +295,12 @@ class BacklogQueueItem(generic_queue.QueueItem):
|
|||||||
for curResult in [item for sublist in foundResults for item in sublist]:
|
for curResult in [item for sublist in foundResults for item in sublist]:
|
||||||
time.sleep(0.01)
|
time.sleep(0.01)
|
||||||
|
|
||||||
search.snatchEpisode(curResult)
|
result = search.snatchEpisode(curResult)
|
||||||
|
|
||||||
|
# duplicate snatch detected due to multithreading
|
||||||
|
if result == 2:
|
||||||
|
continue
|
||||||
|
|
||||||
else:
|
else:
|
||||||
logger.log(u"Backlog search found nothing to snatch ...")
|
logger.log(u"Backlog search found nothing to snatch ...")
|
||||||
|
|
||||||
@ -365,7 +376,13 @@ class FailedQueueItem(generic_queue.QueueItem):
|
|||||||
for curResult in [item for sublist in foundResults for item in sublist]:
|
for curResult in [item for sublist in foundResults for item in sublist]:
|
||||||
time.sleep(0.01)
|
time.sleep(0.01)
|
||||||
|
|
||||||
self.success = search.snatchEpisode(curResult)
|
result = search.snatchEpisode(curResult)
|
||||||
|
|
||||||
|
# duplicate snatch detected due to multithreading
|
||||||
|
if result == 2:
|
||||||
|
continue
|
||||||
|
|
||||||
|
self.success = result
|
||||||
else:
|
else:
|
||||||
logger.log(u"Retry failed download search found nothing to snatch ...")
|
logger.log(u"Retry failed download search found nothing to snatch ...")
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
from __future__ import with_statement
|
from __future__ import with_statement
|
||||||
|
|
||||||
|
import time
|
||||||
import os.path
|
import os.path
|
||||||
import datetime
|
import datetime
|
||||||
import threading
|
import threading
|
||||||
|
Loading…
Reference in New Issue
Block a user