Extraction: Rename get_response to extract_response and check that returned type is dict

This commit is contained in:
James Taylor 2019-09-27 18:07:46 -07:00
parent ce8a658a0e
commit e68ac26b4e

View File

@ -322,23 +322,14 @@ def parse_info_prepare_for_html(renderer, additional_info={}):
return item return item
# TODO: Type checking def extract_response(polymer_json):
def get_response(polymer_json):
'''return response, error''' '''return response, error'''
response = multi_default_multi_get(polymer_json, [1, 'response'], ['response'], default=None, types=dict)
if response is None:
return None, 'Failed to extract response'
else:
return response, None
# responses returned for desktop version
try:
return polymer_json[1]['response'], None
except (TypeError, KeyError, IndexError):
pass
# responses returned for mobile version
try:
return polymer_json['response'], None
except (TypeError, KeyError):
pass
return None, 'Failed to extract response'
list_types = { list_types = {
'sectionListRenderer', 'sectionListRenderer',
@ -459,7 +450,7 @@ def extract_items(response):
return [], None return [], None
def extract_channel_info(polymer_json, tab): def extract_channel_info(polymer_json, tab):
response, err = get_response(polymer_json) response, err = extract_response(polymer_json)
if err: if err:
return {'error': err} return {'error': err}
@ -544,7 +535,7 @@ def extract_channel_info(polymer_json, tab):
return info return info
def extract_search_info(polymer_json): def extract_search_info(polymer_json):
response, err = get_response(polymer_json) response, err = extract_response(polymer_json)
if err: if err:
return {'error': err} return {'error': err}
info = {'error': None} info = {'error': None}
@ -595,7 +586,7 @@ def extract_search_info(polymer_json):
return info return info
def extract_playlist_metadata(polymer_json): def extract_playlist_metadata(polymer_json):
response, err = get_response(polymer_json) response, err = extract_response(polymer_json)
if err: if err:
return {'error': err} return {'error': err}
metadata = renderer_info(response['header']) metadata = renderer_info(response['header'])
@ -609,7 +600,7 @@ def extract_playlist_metadata(polymer_json):
return metadata return metadata
def extract_playlist_info(polymer_json): def extract_playlist_info(polymer_json):
response, err = get_response(polymer_json) response, err = extract_response(polymer_json)
if err: if err:
return {'error': err} return {'error': err}
info = {'error': None} info = {'error': None}
@ -645,7 +636,7 @@ def ctoken_metadata(ctoken):
def parse_comments_polymer(polymer_json): def parse_comments_polymer(polymer_json):
try: try:
video_title = '' video_title = ''
response, err = get_response(polymer_json) response, err = extract_response(polymer_json)
if err: if err:
raise Exception(err) raise Exception(err)