fix auto-fork detection. Fixes #501

This commit is contained in:
clinton-hall 2014-08-05 10:39:47 +09:30
commit 5b648be2ea
2 changed files with 24 additions and 20 deletions

View file

@ -52,10 +52,11 @@ FORK_DEFAULT = "default"
FORK_FAILED = "failed" FORK_FAILED = "failed"
FORK_FAILED_TORRENT = "failed-torrent" FORK_FAILED_TORRENT = "failed-torrent"
FORK_SICKRAGE = "sickrage" FORK_SICKRAGE = "sickrage"
FORKS[FORK_DEFAULT] = {"dir": None, "method": None} FORKS[FORK_DEFAULT] = {"dir": None}
FORKS[FORK_FAILED] = {"dirName": None, "failed": None} FORKS[FORK_FAILED] = {"dirName": None, "failed": None}
FORKS[FORK_FAILED_TORRENT] = {"dir": None, "failed": None, "process_method": None} FORKS[FORK_FAILED_TORRENT] = {"dir": None, "failed": None, "process_method": None}
FORKS[FORK_SICKRAGE] = {"dir": None, "failed": None, "process_method": None, "force": None} FORKS[FORK_SICKRAGE] = {"dir": None, "failed": None, "process_method": None, "force": None}
ALL_FORKS = {"dir": None, "dirName": None, "failed": None, "process_method": None, "force": None}
SICKBEARD_FAILED = [FORK_FAILED, FORK_FAILED_TORRENT, FORK_SICKRAGE] SICKBEARD_FAILED = [FORK_FAILED, FORK_FAILED_TORRENT, FORK_SICKRAGE]
SICKBEARD_TORRENT = [FORK_FAILED_TORRENT, FORK_SICKRAGE] SICKBEARD_TORRENT = [FORK_FAILED_TORRENT, FORK_SICKRAGE]
@ -187,7 +188,7 @@ def initialize(section=None):
SABNZB_NO_OF_ARGUMENTS, SABNZB_0717_NO_OF_ARGUMENTS, CATEGORIES, TORRENT_CLIENTAGENT, USELINK, OUTPUTDIRECTORY, \ SABNZB_NO_OF_ARGUMENTS, SABNZB_0717_NO_OF_ARGUMENTS, CATEGORIES, TORRENT_CLIENTAGENT, USELINK, OUTPUTDIRECTORY, \
NOFLATTEN, UTORRENTPWD, UTORRENTUSR, UTORRENTWEBUI, DELUGEHOST, DELUGEPORT, DELUGEUSR, DELUGEPWD, \ NOFLATTEN, UTORRENTPWD, UTORRENTUSR, UTORRENTWEBUI, DELUGEHOST, DELUGEPORT, DELUGEUSR, DELUGEPWD, \
TRANSMISSIONHOST, TRANSMISSIONPORT, TRANSMISSIONPWD, TRANSMISSIONUSR, COMPRESSEDCONTAINER, MEDIACONTAINER, \ TRANSMISSIONHOST, TRANSMISSIONPORT, TRANSMISSIONPWD, TRANSMISSIONUSR, COMPRESSEDCONTAINER, MEDIACONTAINER, \
METACONTAINER, SECTIONS, \ METACONTAINER, SECTIONS, ALL_FORKS, \
__INITIALIZED__, AUTO_UPDATE, APP_FILENAME, USER_DELAY, APP_NAME, TRANSCODE, DEFAULTS, GIT_PATH, GIT_USER, \ __INITIALIZED__, AUTO_UPDATE, APP_FILENAME, USER_DELAY, APP_NAME, TRANSCODE, DEFAULTS, GIT_PATH, GIT_USER, \
GIT_BRANCH, GIT_REPO, SYS_ENCODING, NZB_CLIENTAGENT, SABNZBDHOST, SABNZBDPORT, SABNZBDAPIKEY, \ GIT_BRANCH, GIT_REPO, SYS_ENCODING, NZB_CLIENTAGENT, SABNZBDHOST, SABNZBDPORT, SABNZBDAPIKEY, \
DUPLICATE, IGNOREEXTENSIONS, VEXTENSION, OUTPUTVIDEOPATH, PROCESSOUTPUT, VCODEC, VCODEC_ALLOW, VPRESET, \ DUPLICATE, IGNOREEXTENSIONS, VEXTENSION, OUTPUTVIDEOPATH, PROCESSOUTPUT, VCODEC, VCODEC_ALLOW, VPRESET, \

View file

@ -64,24 +64,27 @@ def autoFork(section, inputCategory):
logger.info("Attempting to auto-detect %s fork" % inputCategory) logger.info("Attempting to auto-detect %s fork" % inputCategory)
# define the order to test. Default must be first since the default fork doesn't reject parameters. # define the order to test. Default must be first since the default fork doesn't reject parameters.
# then in order of most unique parameters. # then in order of most unique parameters.
for name in [ nzbtomedia.FORK_DEFAULT, nzbtomedia.FORK_FAILED, nzbtomedia.FORK_SICKRAGE, nzbtomedia.FORK_FAILED_TORRENT ]: url = "%s%s:%s%s/home/postprocess/" % (protocol,host,port,web_root)
fork = [name, nzbtomedia.FORKS[name]] # attempting to auto-detect fork
url = "%s%s:%s%s/home/postprocess/processEpisode?%s" % (protocol,host,port,web_root,urllib.urlencode(fork[1])) try:
if username and password:
# attempting to auto-detect fork r = requests.get(url, auth=(username, password), verify=False)
try: else:
if username and password: r = requests.get(url, verify=False)
r = requests.get(url, auth=(username, password), verify=False) except requests.ConnectionError:
else: logger.info("Could not connect to %s:%s to perform auto-fork detection!" % (section, inputCategory))
r = requests.get(url, verify=False) if r.ok:
except requests.ConnectionError: params = nzbtomedia.ALL_FORKS
logger.info("Could not connect to %s:%s to perform auto-fork detection!" % (section, inputCategory)) rem_params = []
break for param in params:
if not 'name="%s"' %(param) in r.text:
if r.ok: rem_params.append(param)
detected = True for param in rem_params:
break params.pop(param)
for fork in sorted(nzbtomedia.FORKS.iteritems(), reverse=False):
if params == fork[1]:
detected = True
break
if detected: if detected:
logger.info("%s:%s fork auto-detection successful ..." % (section, inputCategory)) logger.info("%s:%s fork auto-detection successful ..." % (section, inputCategory))
else: else: