mirror of
				https://github.com/iv-org/invidious.git
				synced 2025-10-30 20:22:00 +00:00 
			
		
		
		
	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:
		| @@ -186,6 +186,7 @@ struct SearchChannel | ||||
|   property author_thumbnail : String | ||||
|   property subscriber_count : Int32 | ||||
|   property video_count : Int32 | ||||
|   property channel_handle : String? | ||||
|   property description_html : String | ||||
|   property auto_generated : Bool | ||||
|   property author_verified : Bool | ||||
| @@ -214,6 +215,7 @@ struct SearchChannel | ||||
|       json.field "autoGenerated", self.auto_generated | ||||
|       json.field "subCount", self.subscriber_count | ||||
|       json.field "videoCount", self.video_count | ||||
|       json.field "channelHandle", self.channel_handle | ||||
|  | ||||
|       json.field "description", html_to_content(self.description_html) | ||||
|       json.field "descriptionHtml", self.description_html | ||||
|   | ||||
| @@ -26,8 +26,9 @@ | ||||
|                 </a></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> | ||||
|             <% 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> | ||||
|         <% when SearchHashtag %> | ||||
|             <% if !thin_mode %> | ||||
|   | ||||
| @@ -175,17 +175,18 @@ private module Parsers | ||||
|       # Always simpleText | ||||
|       # 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 | ||||
|       # subscribers and `subscriberCountText` holds the handle, except when the | ||||
|       # channel doesn't have a handle (e.g: some topic music channels). | ||||
|       # See https://github.com/iv-org/invidious/issues/3394#issuecomment-1321261688 | ||||
|       if !subscriber_count || !subscriber_count.as_s.includes? " subscriber" | ||||
|         subscriber_count = item_contents.dig?("videoCountText", "simpleText") | ||||
|       if !subscriber_count || !subscriber_count.includes? " subscriber" | ||||
|         subscriber_count = item_contents.dig?("videoCountText", "simpleText").try &.as_s | ||||
|       end | ||||
|       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 | ||||
|       # Taken from: https://github.com/iv-org/invidious/pull/2228#discussion_r717620922 | ||||
| @@ -200,6 +201,7 @@ private module Parsers | ||||
|         author_thumbnail: author_thumbnail, | ||||
|         subscriber_count: subscriber_count, | ||||
|         video_count:      video_count, | ||||
|         channel_handle:   channel_handle, | ||||
|         description_html: description_html, | ||||
|         auto_generated:   auto_generated, | ||||
|         author_verified:  author_verified, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 ChunkyProgrammer
					ChunkyProgrammer