Added a check for length of results before we decide if we need to narrow them down further by checking the download clients

This commit is contained in:
echel0n 2014-04-18 14:37:53 -07:00
commit 3db20ab072

View file

@ -7,6 +7,7 @@ from nzbtomedia.nzbToMediaSceneExceptions import process_all_exceptions
from nzbtomedia.nzbToMediaUtil import convert_to_ascii, delete, find_imdbid, find_download from nzbtomedia.nzbToMediaUtil import convert_to_ascii, delete, find_imdbid, find_download
from nzbtomedia import logger from nzbtomedia import logger
class autoProcessMovie: class autoProcessMovie:
def get_releases(self, baseURL, imdbid=None, download_id=None): def get_releases(self, baseURL, imdbid=None, download_id=None):
results = {} results = {}
@ -47,14 +48,17 @@ class autoProcessMovie:
id = release['_id'] id = release['_id']
results[id] = release results[id] = release
except:continue except:
continue
# Search downloads on clients for a match to try and narrow our results down to 1 # Search downloads on clients for a match to try and narrow our results down to 1
if len(results) > 1:
for id, x in results.items(): for id, x in results.items():
try: try:
if not find_download(str(x['download_info']['downloader']).lower(), x['download_info']['id']): if not find_download(str(x['download_info']['downloader']).lower(), x['download_info']['id']):
results.pop(id) results.pop(id)
except:continue except:
continue
return results return results
@ -118,7 +122,8 @@ class autoProcessMovie:
media_id = releases[release_id]['media_id'] media_id = releases[release_id]['media_id']
download_id = releases[release_id]['download_info']['id'] download_id = releases[release_id]['download_info']['id']
downloader = releases[release_id]['download_info']['downloader'] downloader = releases[release_id]['download_info']['downloader']
except:pass except:
pass
process_all_exceptions(nzbName.lower(), dirName) process_all_exceptions(nzbName.lower(), dirName)
nzbName, dirName = convert_to_ascii(nzbName, dirName) nzbName, dirName = convert_to_ascii(nzbName, dirName)
@ -162,7 +167,8 @@ class autoProcessMovie:
if result['success']: if result['success']:
logger.postprocess("SUCCESS: Finished %s scan for folder %s" % (method, dirName), section) logger.postprocess("SUCCESS: Finished %s scan for folder %s" % (method, dirName), section)
else: else:
logger.error("FAILED: %s scan was unable to finish for folder %s. exiting!" % (method, dirName), section) logger.error("FAILED: %s scan was unable to finish for folder %s. exiting!" % (method, dirName),
section)
return 1 # failure return 1 # failure
else: else:
@ -173,7 +179,8 @@ class autoProcessMovie:
delete(dirName) delete(dirName)
if not download_id: if not download_id:
logger.error("Could not find a downloaded movie in the database matching %s, exiting!" % nzbName, section) logger.error("Could not find a downloaded movie in the database matching %s, exiting!" % nzbName,
section)
return 1 # failure return 1 # failure
logger.postprocess("Setting failed release %s to ignored ..." % (nzbName), section) logger.postprocess("Setting failed release %s to ignored ..." % (nzbName), section)
@ -209,7 +216,8 @@ class autoProcessMovie:
logger.postprocess("SUCCESS: Snatched the next highest release ...", section) logger.postprocess("SUCCESS: Snatched the next highest release ...", section)
return 0 return 0
else: else:
logger.postprocess("FAILED: Unable to find a higher ranked release then %s to snatch!" % (nzbName), section) logger.postprocess("FAILED: Unable to find a higher ranked release then %s to snatch!" % (nzbName),
section)
return 1 return 1
# we will now check to see if CPS has finished renaming before returning to TorrentToMedia and unpausing. # we will now check to see if CPS has finished renaming before returning to TorrentToMedia and unpausing.
@ -221,13 +229,17 @@ class autoProcessMovie:
if releasesDiff: # Something has changed. CPS must have processed this movie. if releasesDiff: # Something has changed. CPS must have processed this movie.
try: try:
release_status = releasesDiff[releasesDiff.keys()[0]]['status'] release_status = releasesDiff[releasesDiff.keys()[0]]['status']
logger.postprocess("SUCCESS: Release %s has now been marked with a status of [%s]" % (nzbName, str(release_status).upper()), section) logger.postprocess("SUCCESS: Release %s has now been marked with a status of [%s]" % (
nzbName, str(release_status).upper()), section)
return 0 # success return 0 # success
except:pass except:
pass
# pause and let CouchPotatoServer catch its breath # pause and let CouchPotatoServer catch its breath
time.sleep(10 * wait_for) time.sleep(10 * wait_for)
# The status hasn't changed. we have waited 2 minutes which is more than enough. uTorrent can resule seeding now. # The status hasn't changed. we have waited 2 minutes which is more than enough. uTorrent can resule seeding now.
logger.warning("%s does not appear to have changed status after %s minutes, Please check your logs." % (nzbName, wait_for), section) logger.warning(
"%s does not appear to have changed status after %s minutes, Please check your logs." % (nzbName, wait_for),
section)
return 1 # failure return 1 # failure