mirror of
https://github.com/clinton-hall/nzbToMedia.git
synced 2025-08-20 13:23:18 -07:00
Merge pull request #1508 from clinton-hall/fix/forkdetection
Fix fork detection, part 1
This commit is contained in:
commit
50b743ad30
1 changed files with 30 additions and 9 deletions
|
@ -81,22 +81,43 @@ def auto_fork(section, input_category):
|
||||||
if apikey:
|
if apikey:
|
||||||
optional_parameters = []
|
optional_parameters = []
|
||||||
try:
|
try:
|
||||||
optional_parameters = r.json()['data']['optionalParameters'].keys()
|
json_data = r.json()
|
||||||
except Exception:
|
except ValueError:
|
||||||
optional_parameters = r.json()['data']['data']['optionalParameters'].keys()
|
logger.error('Failed to get JSON data from response')
|
||||||
for param in params:
|
logger.debug('Response received')
|
||||||
if param not in optional_parameters:
|
raise
|
||||||
rem_params.append(param)
|
|
||||||
|
try:
|
||||||
|
json_data = json_data['data']
|
||||||
|
except KeyError:
|
||||||
|
logger.error('Failed to get data from JSON')
|
||||||
|
logger.debug('Response received: {}'.format(json_data))
|
||||||
|
raise
|
||||||
else:
|
else:
|
||||||
for param in params:
|
json_data = json_data.get('data', json_data)
|
||||||
if 'name="{param}"'.format(param=param) not in r.text:
|
|
||||||
rem_params.append(param)
|
optional_parameters = json_data['optionalParameters'].keys()
|
||||||
|
# Find excess parameters
|
||||||
|
excess_parameters = set(params).difference(optional_parameters)
|
||||||
|
logger.debug('Removing excess parameters: {}'.format(sorted(excess_parameters)))
|
||||||
|
rem_params.extend(excess_parameters)
|
||||||
|
else:
|
||||||
|
# Find excess parameters
|
||||||
|
rem_params.extend(
|
||||||
|
param
|
||||||
|
for param in params
|
||||||
|
if 'name="{param}"'.format(param=param) not in r.text
|
||||||
|
)
|
||||||
|
|
||||||
|
# Remove excess params
|
||||||
for param in rem_params:
|
for param in rem_params:
|
||||||
params.pop(param)
|
params.pop(param)
|
||||||
|
|
||||||
for fork in sorted(iteritems(core.FORKS), reverse=False):
|
for fork in sorted(iteritems(core.FORKS), reverse=False):
|
||||||
if params == fork[1]:
|
if params == fork[1]:
|
||||||
detected = True
|
detected = True
|
||||||
break
|
break
|
||||||
|
|
||||||
if detected:
|
if detected:
|
||||||
logger.info('{section}:{category} fork auto-detection successful ...'.format
|
logger.info('{section}:{category} fork auto-detection successful ...'.format
|
||||||
(section=section, category=input_category))
|
(section=section, category=input_category))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue