mirror of
				https://github.com/iv-org/invidious.git
				synced 2025-10-31 04:32:02 +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) | ||||
|   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 | ||||
|     initial_data = extract_initial_data(response.body) | ||||
|     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 | ||||
|     ucid = channel | ||||
|   end | ||||
| @@ -210,7 +213,13 @@ def process_search_query(query, page, user, region) | ||||
|   search_query = (query.split(" ") - operators).join(" ") | ||||
|  | ||||
|   if channel | ||||
|     count, items = channel_search(search_query, page, channel) | ||||
|     begin | ||||
|       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 | ||||
|     if view_name | ||||
|       items = PG_DB.query_all("SELECT id,title,published,updated,ucid,author,length_seconds FROM ( | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 matthewmcgarvey
					matthewmcgarvey