extract_channel_info: Improve error extraction
Use extract_str function since it's not always 'simpleText' Make sure we don't output an empty error message if we don't know what it is. channel.py: Don't check if error message is empty, check if it's None
This commit is contained in:
parent
804ed093ee
commit
81ff5ab99c
@ -203,7 +203,7 @@ def get_channel_page_general_url(base_url, tab, request, channel_id=None):
|
|||||||
|
|
||||||
|
|
||||||
info = yt_data_extract.extract_channel_info(json.loads(polymer_json), tab)
|
info = yt_data_extract.extract_channel_info(json.loads(polymer_json), tab)
|
||||||
if info['error']:
|
if info['error'] is not None:
|
||||||
return flask.render_template('error.html', error_message = info['error'])
|
return flask.render_template('error.html', error_message = info['error'])
|
||||||
|
|
||||||
post_process_channel_info(info)
|
post_process_channel_info(info)
|
||||||
|
@ -21,10 +21,13 @@ def extract_channel_info(polymer_json, tab):
|
|||||||
# example terminated channel: https://www.youtube.com/channel/UCnKJeK_r90jDdIuzHXC0Org
|
# example terminated channel: https://www.youtube.com/channel/UCnKJeK_r90jDdIuzHXC0Org
|
||||||
except KeyError:
|
except KeyError:
|
||||||
if response.get('alerts'):
|
if response.get('alerts'):
|
||||||
return {'error': ' '.join(
|
error_string = ' '.join(
|
||||||
deep_get(alert, 'alertRenderer', 'text', 'simpleText', default='')
|
extract_str(deep_get(alert, 'alertRenderer', 'text'), default='')
|
||||||
for alert in response['alerts']
|
for alert in response['alerts']
|
||||||
)}
|
)
|
||||||
|
if not error_string:
|
||||||
|
error_string = 'Failed to extract error'
|
||||||
|
return {'error': error_string}
|
||||||
elif deep_get(response, 'responseContext', 'errors'):
|
elif deep_get(response, 'responseContext', 'errors'):
|
||||||
for error in response['responseContext']['errors'].get('error', []):
|
for error in response['responseContext']['errors'].get('error', []):
|
||||||
if error.get('code') == 'INVALID_VALUE' and error.get('location') == 'browse_id':
|
if error.get('code') == 'INVALID_VALUE' and error.get('location') == 'browse_id':
|
||||||
|
Loading…
x
Reference in New Issue
Block a user