Fix comment count extraction due to 'K/M' postfixes

YouTube now displays 2K comments instead of 2359, for instance
This commit is contained in:
Astound 2024-01-22 05:59:11 +08:00
parent ca4a735692
commit 51a1693789
Signed by: kaiser
GPG Key ID: 97504AF0027B1A56
3 changed files with 8 additions and 5 deletions

View File

@ -54,7 +54,10 @@ def commatize(num):
if num is None:
return ''
if isinstance(num, str):
try:
num = int(num)
except ValueError:
return num
return '{:,}'.format(num)

View File

@ -233,7 +233,7 @@
<div class="comments-area-outer comments-disabled">Comments disabled</div>
{% else %}
<details class="comments-area-outer" {{'open' if settings.comments_mode == 1 else ''}}>
<summary>{{ comment_count|commatize }} comment{{'s' if comment_count != 1 else ''}}</summary>
<summary>{{ comment_count|commatize }} comment{{'s' if comment_count != '1' else ''}}</summary>
<div class="comments-area-inner comments-area">
{% if comments_info %}
{{ comments.video_comments(comments_info) }}

View File

@ -363,12 +363,12 @@ def _extract_watch_info_mobile(top_level):
comment_count_text = extract_str(deep_get(comment_info,
'header', 'commentSectionHeaderRenderer', 'countText'))
if comment_count_text == 'Comments': # just this with no number, means 0 comments
info['comment_count'] = 0
info['comment_count'] = '0'
else:
info['comment_count'] = extract_int(comment_count_text)
info['comment_count'] = extract_approx_int(comment_count_text)
info['comments_disabled'] = False
else: # no comment section present means comments are disabled
info['comment_count'] = 0
info['comment_count'] = '0'
info['comments_disabled'] = True
# check for limited state