Search: Parse channel handle and hide video count when channel handle exists
Co-Authored-By: Samantaz Fox <coding@samantaz.fr>
This commit is contained in:
parent
bb14f79496
commit
8781520b8a
@ -186,6 +186,7 @@ struct SearchChannel
|
|||||||
property author_thumbnail : String
|
property author_thumbnail : String
|
||||||
property subscriber_count : Int32
|
property subscriber_count : Int32
|
||||||
property video_count : Int32
|
property video_count : Int32
|
||||||
|
property channel_handle : String?
|
||||||
property description_html : String
|
property description_html : String
|
||||||
property auto_generated : Bool
|
property auto_generated : Bool
|
||||||
property author_verified : Bool
|
property author_verified : Bool
|
||||||
@ -214,6 +215,7 @@ struct SearchChannel
|
|||||||
json.field "autoGenerated", self.auto_generated
|
json.field "autoGenerated", self.auto_generated
|
||||||
json.field "subCount", self.subscriber_count
|
json.field "subCount", self.subscriber_count
|
||||||
json.field "videoCount", self.video_count
|
json.field "videoCount", self.video_count
|
||||||
|
json.field "channelHandle", self.channel_handle
|
||||||
|
|
||||||
json.field "description", html_to_content(self.description_html)
|
json.field "description", html_to_content(self.description_html)
|
||||||
json.field "descriptionHtml", self.description_html
|
json.field "descriptionHtml", self.description_html
|
||||||
|
@ -26,8 +26,9 @@
|
|||||||
</a></div>
|
</a></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<% if !item.channel_handle.nil? %><p class="channel-name" dir="auto"><%= item.channel_handle %></p><% end %>
|
||||||
<p><%= translate_count(locale, "generic_subscribers_count", item.subscriber_count, NumberFormatting::Separator) %></p>
|
<p><%= translate_count(locale, "generic_subscribers_count", item.subscriber_count, NumberFormatting::Separator) %></p>
|
||||||
<% if !item.auto_generated %><p><%= translate_count(locale, "generic_videos_count", item.video_count, NumberFormatting::Separator) %></p><% end %>
|
<% if !item.auto_generated && item.channel_handle.nil? %><p><%= translate_count(locale, "generic_videos_count", item.video_count, NumberFormatting::Separator) %></p><% end %>
|
||||||
<h5><%= item.description_html %></h5>
|
<h5><%= item.description_html %></h5>
|
||||||
<% when SearchHashtag %>
|
<% when SearchHashtag %>
|
||||||
<% if !thin_mode %>
|
<% if !thin_mode %>
|
||||||
|
@ -175,17 +175,18 @@ private module Parsers
|
|||||||
# Always simpleText
|
# Always simpleText
|
||||||
# TODO change default value to nil
|
# TODO change default value to nil
|
||||||
|
|
||||||
subscriber_count = item_contents.dig?("subscriberCountText", "simpleText")
|
subscriber_count = item_contents.dig?("subscriberCountText", "simpleText").try &.as_s
|
||||||
|
channel_handle = subscriber_count if (subscriber_count.try &.starts_with? "@")
|
||||||
|
|
||||||
# Since youtube added channel handles, `VideoCountText` holds the number of
|
# Since youtube added channel handles, `VideoCountText` holds the number of
|
||||||
# subscribers and `subscriberCountText` holds the handle, except when the
|
# subscribers and `subscriberCountText` holds the handle, except when the
|
||||||
# channel doesn't have a handle (e.g: some topic music channels).
|
# channel doesn't have a handle (e.g: some topic music channels).
|
||||||
# See https://github.com/iv-org/invidious/issues/3394#issuecomment-1321261688
|
# See https://github.com/iv-org/invidious/issues/3394#issuecomment-1321261688
|
||||||
if !subscriber_count || !subscriber_count.as_s.includes? " subscriber"
|
if !subscriber_count || !subscriber_count.includes? " subscriber"
|
||||||
subscriber_count = item_contents.dig?("videoCountText", "simpleText")
|
subscriber_count = item_contents.dig?("videoCountText", "simpleText").try &.as_s
|
||||||
end
|
end
|
||||||
subscriber_count = subscriber_count
|
subscriber_count = subscriber_count
|
||||||
.try { |s| short_text_to_number(s.as_s.split(" ")[0]).to_i32 } || 0
|
.try { |s| short_text_to_number(s.split(" ")[0]).to_i32 } || 0
|
||||||
|
|
||||||
# Auto-generated channels doesn't have videoCountText
|
# Auto-generated channels doesn't have videoCountText
|
||||||
# Taken from: https://github.com/iv-org/invidious/pull/2228#discussion_r717620922
|
# Taken from: https://github.com/iv-org/invidious/pull/2228#discussion_r717620922
|
||||||
@ -200,6 +201,7 @@ private module Parsers
|
|||||||
author_thumbnail: author_thumbnail,
|
author_thumbnail: author_thumbnail,
|
||||||
subscriber_count: subscriber_count,
|
subscriber_count: subscriber_count,
|
||||||
video_count: video_count,
|
video_count: video_count,
|
||||||
|
channel_handle: channel_handle,
|
||||||
description_html: description_html,
|
description_html: description_html,
|
||||||
auto_generated: auto_generated,
|
auto_generated: auto_generated,
|
||||||
author_verified: author_verified,
|
author_verified: author_verified,
|
||||||
|
Loading…
Reference in New Issue
Block a user