Don't catch and provide better error message instead

pull/2821/head
matthewmcgarvey 3 years ago
parent 97dceb3a5a
commit d4f3139b73

@ -1,4 +1,7 @@
class ChannelSearchException < InfoException class ChannelSearchException < InfoException
def initialize(channel : String)
super "Unable to find channel with id of '#{channel}'. Are you sure that's an actual channel id?"
end
end end
def channel_search(query, page, channel) def channel_search(query, page, channel)
@ -9,7 +12,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 ChannelSearchException.new("Impossible to extract channel ID from page") if !ucid raise ChannelSearchException.new(channel) if !ucid
else else
ucid = channel ucid = channel
end end
@ -213,13 +216,7 @@ 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 (

Loading…
Cancel
Save