[instagram] Fix comments extraction (#660)

Authored-by: u-spec-png <miloradkalabasdt@gmail.com>
This commit is contained in:
SsSsS 2021-08-10 13:15:32 +00:00 committed by GitHub
parent bc8745480e
commit 60c8fc73c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -195,18 +195,23 @@ def get_count(keys, kind):
lambda x: x['%ss' % kind]['count'])))
if count is not None:
return count
like_count = get_count('preview_like', 'like')
comment_count = get_count(
('preview_comment', 'to_comment', 'to_parent_comment'), 'comment')
comments = [{
'author': comment.get('user', {}).get('username'),
'author_id': comment.get('user', {}).get('id'),
'id': comment.get('id'),
'text': comment.get('text'),
'timestamp': int_or_none(comment.get('created_at')),
} for comment in media.get(
'comments', {}).get('nodes', []) if comment.get('text')]
comments = []
for comment in try_get(media, lambda x: x['edge_media_to_parent_comment']['edges']):
comment_dict = comment.get('node', {})
comment_text = comment_dict.get('text')
if comment_text:
comments.append({
'author': try_get(comment_dict, lambda x: x['owner']['username']),
'author_id': try_get(comment_dict, lambda x: x['owner']['id']),
'id': comment_dict.get('id'),
'text': comment_text,
'timestamp': int_or_none(comment_dict.get('created_at')),
})
if not video_url:
edges = try_get(
media, lambda x: x['edge_sidecar_to_children']['edges'],