From 1c8bd671d8a8efe54ce38750b600c8d606185991 Mon Sep 17 00:00:00 2001 From: Omar Roth Date: Sun, 9 Sep 2018 09:18:31 -0500 Subject: [PATCH] Fix link redirect for YouTube comments --- src/invidious.cr | 4 ++++ src/invidious/comments.cr | 4 +--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/invidious.cr b/src/invidious.cr index 78cbd454..5220b387 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -1917,8 +1917,12 @@ get "/api/v1/comments/:id" do |env| if url url = URI.parse(url) + if {"m.youtube.com", "www.youtube.com", "youtu.be"}.includes? url.host if url.path == "/redirect" url = HTTP::Params.parse(url.query.not_nil!)["q"] + else + url = url.full_path + end end else url = run["navigationEndpoint"]["commandMetadata"]?.try &.["webCommandMetadata"]["url"].as_s diff --git a/src/invidious/comments.cr b/src/invidious/comments.cr index c135497e..70746499 100644 --- a/src/invidious/comments.cr +++ b/src/invidious/comments.cr @@ -196,15 +196,13 @@ def replace_links(html) html.xpath_nodes(%q(//a)).each do |anchor| url = URI.parse(anchor["href"]) - if ["www.youtube.com", "m.youtube.com"].includes?(url.host) + if {"www.youtube.com", "m.youtube.com", "youtu.be"}.includes?(url.host) if url.path == "/redirect" params = HTTP::Params.parse(url.query.not_nil!) anchor["href"] = params["q"]? else anchor["href"] = url.full_path end - elsif url.host == "youtu.be" - anchor["href"] = "/watch?v=#{url.path.try &.lchop("/")}&#{url.query}" elsif url.to_s == "#" begin length_seconds = decode_length_seconds(anchor.content)