mirror of
https://github.com/iv-org/invidious.git
synced 2024-11-10 09:07:48 +01:00
Custom error on channel search, handle in search
This commit is contained in:
parent
212f6d6bf5
commit
97dceb3a5a
1 changed files with 11 additions and 2 deletions
|
@ -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 (
|
||||
|
|
Loading…
Reference in a new issue