Merge pull request #1508 from clinton-hall/fix/forkdetection

Fix fork detection, part 1
This commit is contained in:
Labrys of Knossos 2019-01-05 22:50:50 -05:00 committed by GitHub
commit 50b743ad30
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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))