diff options
| author | chunky programmer <78101139+ChunkyProgrammer@users.noreply.github.com> | 2023-04-19 20:59:06 -0400 |
|---|---|---|
| committer | chunky programmer <78101139+ChunkyProgrammer@users.noreply.github.com> | 2023-04-30 18:58:08 -0400 |
| commit | d420741cc15dce656da641f5143120ec88e59bc8 (patch) | |
| tree | ca400617addc3de138976b558368793a82646124 /src | |
| parent | 97e3938f5f6741d8645c1bdd37deebc6ddc06151 (diff) | |
| download | invidious-d420741cc15dce656da641f5143120ec88e59bc8.tar.gz invidious-d420741cc15dce656da641f5143120ec88e59bc8.tar.bz2 invidious-d420741cc15dce656da641f5143120ec88e59bc8.zip | |
Allow channel urls to be displayed in YT description
Diffstat (limited to 'src')
| -rw-r--r-- | src/invidious/videos/description.cr | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/invidious/videos/description.cr b/src/invidious/videos/description.cr index 2017955d..0a9d84f8 100644 --- a/src/invidious/videos/description.cr +++ b/src/invidious/videos/description.cr @@ -6,13 +6,19 @@ def parse_command(command : JSON::Any?, string : String) : String? # 3rd party URL, extract original URL from YouTube tracking URL if url_endpoint = on_tap.try &.["urlEndpoint"]? - youtube_url = URI.parse url_endpoint["url"].as_s - - original_url = youtube_url.query_params["q"]? - if original_url.nil? - return "" + if url_endpoint["url"].as_s.includes? "youtube.com/redirect" + youtube_url = URI.parse url_endpoint["url"].as_s + original_url = youtube_url.query_params["q"]? + if original_url.nil? + return "" + else + return "<a href=\"#{original_url}\">#{original_url}</a>" + end else - return "<a href=\"#{original_url}\">#{original_url}</a>" + # not a redirect url, some first party url + # see https://github.com/iv-org/invidious/issues/3751 + first_party_url = url_endpoint["url"].as_s + return "<a href=\"#{first_party_url.sub("https://www.youtube.com", "")}\">#{first_party_url}</a>" end # 1st party watch URL elsif watch_endpoint = on_tap.try &.["watchEndpoint"]? |
