Browse Source

This fixes all failed download issues

tags/release_0.1.0
echel0n 11 years ago
parent
commit
d616ca2298
  1. 7
      sickbeard/processTV.py
  2. 63
      sickbeard/search_queue.py

7
sickbeard/processTV.py

@ -393,6 +393,8 @@ def delete_dir(processPath):
def get_path_dir_files(dirName, nzbName, type): def get_path_dir_files(dirName, nzbName, type):
path, dirs, files = None
if dirName == sickbeard.TV_DOWNLOAD_DIR and not nzbName or type == "manual": #Scheduled Post Processing Active if dirName == sickbeard.TV_DOWNLOAD_DIR and not nzbName or type == "manual": #Scheduled Post Processing Active
#Get at first all the subdir in the dirName #Get at first all the subdir in the dirName
for path, dirs, files in ek.ek(os.walk, dirName): for path, dirs, files in ek.ek(os.walk, dirName):
@ -416,6 +418,8 @@ def process_failed(dirName, nzbName):
global returnStr global returnStr
if sickbeard.USE_FAILED_DOWNLOADS: if sickbeard.USE_FAILED_DOWNLOADS:
processor = None
try: try:
processor = failedProcessor.FailedProcessor(dirName, nzbName) processor = failedProcessor.FailedProcessor(dirName, nzbName)
process_result = processor.process() process_result = processor.process()
@ -424,7 +428,8 @@ def process_failed(dirName, nzbName):
process_result = False process_result = False
process_fail_message = ex(e) process_fail_message = ex(e)
returnStr += processor.log if processor:
returnStr += processor.log
if sickbeard.DELETE_FAILED and process_result: if sickbeard.DELETE_FAILED and process_result:
delete_dir(dirName) delete_dir(dirName)

63
sickbeard/search_queue.py

@ -212,37 +212,36 @@ class FailedQueueItem(generic_queue.QueueItem):
def execute(self): def execute(self):
generic_queue.QueueItem.execute(self) generic_queue.QueueItem.execute(self)
for season in self.segment: for season, episodes in self.segment.items():
epObj = self.segment[season] for epObj in episodes:
(release, provider) = failed_history.findRelease(epObj)
(release, provider) = failed_history.findRelease(epObj) if release:
if release: logger.log(u"Marking release as bad: " + release)
logger.log(u"Marking release as bad: " + release) failed_history.markFailed(epObj)
failed_history.markFailed(epObj) failed_history.logFailed(release)
failed_history.logFailed(release) history.logFailed(epObj, release, provider)
history.logFailed(epObj, release, provider) failed_history.revertEpisode(epObj)
failed_history.revertEpisode(epObj)
logger.log(
logger.log( "Beginning failed download search for [" + epObj.prettyName() + "]")
"Beginning failed download search for [" + epObj.prettyName() + "]") try:
try: searchResult = search.searchProviders(self.show, season, [epObj], True)
searchResult = search.searchProviders(self.show, season, [epObj], True)
# reset thread back to original name
# reset thread back to original name threading.currentThread().name = self.thread_name
threading.currentThread().name = self.thread_name
if searchResult:
if searchResult: for result in searchResult:
for result in searchResult: # just use the first result for now
# just use the first result for now logger.log(u"Downloading " + result.name + " from " + result.provider.name)
logger.log(u"Downloading " + result.name + " from " + result.provider.name) search.snatchEpisode(result)
search.snatchEpisode(result)
# give the CPU a break
# give the CPU a break time.sleep(2)
time.sleep(2)
else:
else: logger.log(u"No valid episode found to retry for [" + epObj.prettyName() + "]")
logger.log(u"No episodes found to retry for failed downloads return from providers!") except Exception, e:
except Exception, e: logger.log(traceback.format_exc(), logger.DEBUG)
logger.log(traceback.format_exc(), logger.DEBUG)
self.finish() self.finish()
Loading…
Cancel
Save