diff options
| author | matthewmcgarvey <matthewmcgarvey14@gmail.com> | 2022-01-17 09:49:29 -0600 |
|---|---|---|
| committer | matthewmcgarvey <matthewmcgarvey14@gmail.com> | 2022-01-18 18:37:16 -0600 |
| commit | 97dceb3a5a8037fffc28b0e2deca4ebc42b24177 (patch) | |
| tree | 22f1c2bac7c471166ed050d0fd971fe2e138de81 /src | |
| parent | 212f6d6bf5861ed54024992e5babd50dc5ac62a6 (diff) | |
| download | invidious-97dceb3a5a8037fffc28b0e2deca4ebc42b24177.tar.gz invidious-97dceb3a5a8037fffc28b0e2deca4ebc42b24177.tar.bz2 invidious-97dceb3a5a8037fffc28b0e2deca4ebc42b24177.zip | |
Custom error on channel search, handle in search
Diffstat (limited to 'src')
| -rw-r--r-- | src/invidious/search.cr | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/invidious/search.cr b/src/invidious/search.cr index 0bb7c69d..6cb61e7d 100644 --- a/src/invidious/search.cr +++ b/src/invidious/search.cr @@ -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 ( |
