mirror of
				https://github.com/iv-org/invidious.git
				synced 2025-11-04 06:31:57 +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