From be601a7584a1369938812d830bad8c4160dbcbd5 Mon Sep 17 00:00:00 2001 From: Omar Roth Date: Tue, 23 Oct 2018 21:04:15 -0500 Subject: [PATCH] Fix handling for non-existent channels --- src/invidious/channels.cr | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/invidious/channels.cr b/src/invidious/channels.cr index 3a894b66..1d92dc87 100644 --- a/src/invidious/channels.cr +++ b/src/invidious/channels.cr @@ -190,11 +190,16 @@ def get_about_info(ucid) client = make_client(YT_URL) about = client.get("/channel/#{ucid}/about?disable_polymer=1&gl=US&hl=en") + if about.status_code == 404 + about = client.get("/user/#{ucid}/about?disable_polymer=1&gl=US&hl=en") + end + about = XML.parse_html(about.body) - if !about.xpath_node(%q(//span[contains(@class,"qualified-channel-title-text")]/a)) - about = client.get("/user/#{ucid}/about?disable_polymer=1&gl=US&hl=en") - about = XML.parse_html(about.body) + if about.xpath_node(%q(//div[contains(@class, "channel-empty-message")])) + error_message = "This channel does not exist." + + raise error_message end if about.xpath_node(%q(//span[contains(@class,"qualified-channel-title-text")]/a)).try &.content.empty?