Custom error on channel search, handle in search
This commit is contained in:
parent
212f6d6bf5
commit
97dceb3a5a
|
@ -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
|
||||||
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
|
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 (
|
||||||
|
|
Loading…
Reference in a new issue