mirror of
				https://github.com/iv-org/invidious.git
				synced 2025-11-04 06:31:57 +00:00 
			
		
		
		
	Custom error on channel search, handle in search
This commit is contained in:
		@@ -1,3 +1,6 @@
 | 
				
			|||||||
 | 
					class ChannelSearchException < InfoException
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def channel_search(query, page, channel)
 | 
					def channel_search(query, page, channel)
 | 
				
			||||||
  response = YT_POOL.client &.get("/channel/#{channel}")
 | 
					  response = YT_POOL.client &.get("/channel/#{channel}")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -6,7 +9,7 @@ def channel_search(query, page, channel)
 | 
				
			|||||||
    response = YT_POOL.client &.get("/c/#{channel}") if response.status_code == 404
 | 
					    response = YT_POOL.client &.get("/c/#{channel}") if response.status_code == 404
 | 
				
			||||||
    initial_data = extract_initial_data(response.body)
 | 
					    initial_data = extract_initial_data(response.body)
 | 
				
			||||||
    ucid = initial_data.dig?("header", "c4TabbedHeaderRenderer", "channelId").try(&.as_s?)
 | 
					    ucid = initial_data.dig?("header", "c4TabbedHeaderRenderer", "channelId").try(&.as_s?)
 | 
				
			||||||
    raise InfoException.new("Impossible to extract channel ID from page") if !ucid
 | 
					    raise ChannelSearchException.new("Impossible to extract channel ID from page") if !ucid
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    ucid = channel
 | 
					    ucid = channel
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
@@ -210,7 +213,13 @@ def process_search_query(query, page, user, region)
 | 
				
			|||||||
  search_query = (query.split(" ") - operators).join(" ")
 | 
					  search_query = (query.split(" ") - operators).join(" ")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if channel
 | 
					  if channel
 | 
				
			||||||
 | 
					    begin
 | 
				
			||||||
      count, items = channel_search(search_query, page, channel)
 | 
					      count, items = channel_search(search_query, page, channel)
 | 
				
			||||||
 | 
					    rescue ChannelSearchException
 | 
				
			||||||
 | 
					      # most likely reason for this is that they provided an invalid channel id to the search
 | 
				
			||||||
 | 
					      count = 0
 | 
				
			||||||
 | 
					      items = [] of ChannelVideo
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
  elsif subscriptions
 | 
					  elsif subscriptions
 | 
				
			||||||
    if view_name
 | 
					    if view_name
 | 
				
			||||||
      items = PG_DB.query_all("SELECT id,title,published,updated,ucid,author,length_seconds FROM (
 | 
					      items = PG_DB.query_all("SELECT id,title,published,updated,ucid,author,length_seconds FROM (
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user