mirror of
https://git.nerdvpn.de/NerdVPN.de/invidious
synced 2026-02-14 22:51:42 +01:00
remove PR test 4099
This commit is contained in:
@@ -1,132 +0,0 @@
|
||||
From 49b9316b9f2e9ccc6921a2f293abacb37f9805f6 Mon Sep 17 00:00:00 2001
|
||||
From: Samantaz Fox <coding@samantaz.fr>
|
||||
Date: Wed, 13 Sep 2023 23:40:20 +0200
|
||||
Subject: [PATCH 1/2] Routing: Handle current and future routes more nicely
|
||||
|
||||
---
|
||||
src/invidious/routes/channels.cr | 19 +++++++++++++----
|
||||
src/invidious/routing.cr | 36 +++++++++++++++++++++-----------
|
||||
2 files changed, 39 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/src/invidious/routes/channels.cr b/src/invidious/routes/channels.cr
|
||||
index 9892ae2a..5500672f 100644
|
||||
--- a/src/invidious/routes/channels.cr
|
||||
+++ b/src/invidious/routes/channels.cr
|
||||
@@ -217,6 +217,11 @@ module Invidious::Routes::Channels
|
||||
env.redirect "/channel/#{ucid}"
|
||||
end
|
||||
|
||||
+ private KNOWN_TABS = {
|
||||
+ "home", "videos", "shorts", "streams", "podcasts",
|
||||
+ "releases", "playlists", "community", "channels", "about",
|
||||
+ }
|
||||
+
|
||||
# Redirects brand url channels to a normal /channel/:ucid route
|
||||
def self.brand_redirect(env)
|
||||
locale = env.get("preferences").as(Preferences).locale
|
||||
@@ -227,7 +232,10 @@ module Invidious::Routes::Channels
|
||||
yt_url_params = URI::Params.encode(env.params.query.to_h.select(["a", "u", "user"]))
|
||||
|
||||
# Retrieves URL params that only Invidious uses
|
||||
- invidious_url_params = URI::Params.encode(env.params.query.to_h.select!(["a", "u", "user"]))
|
||||
+ invidious_url_params = env.params.query.dup
|
||||
+ invidious_url_params.delete_all("a")
|
||||
+ invidious_url_params.delete_all("u")
|
||||
+ invidious_url_params.delete_all("user")
|
||||
|
||||
begin
|
||||
resolved_url = YoutubeAPI.resolve_url("https://youtube.com#{env.request.path}#{yt_url_params.size > 0 ? "?#{yt_url_params}" : ""}")
|
||||
@@ -236,14 +244,17 @@ module Invidious::Routes::Channels
|
||||
return error_template(404, translate(locale, "This channel does not exist."))
|
||||
end
|
||||
|
||||
- selected_tab = env.request.path.split("/")[-1]
|
||||
- if {"home", "videos", "shorts", "streams", "playlists", "community", "channels", "about"}.includes? selected_tab
|
||||
+ selected_tab = env.params.url["tab"]?
|
||||
+
|
||||
+ if KNOWN_TABS.includes? selected_tab
|
||||
url = "/channel/#{ucid}/#{selected_tab}"
|
||||
else
|
||||
url = "/channel/#{ucid}"
|
||||
end
|
||||
|
||||
- env.redirect url
|
||||
+ url += "?#{invidious_url_params}" if !invidious_url_params.empty?
|
||||
+
|
||||
+ return env.redirect url
|
||||
end
|
||||
|
||||
# Handles redirects for the /profile endpoint
|
||||
diff --git a/src/invidious/routing.cr b/src/invidious/routing.cr
|
||||
index 9c43171c..5ec7fae3 100644
|
||||
--- a/src/invidious/routing.cr
|
||||
+++ b/src/invidious/routing.cr
|
||||
@@ -124,22 +124,34 @@ module Invidious::Routing
|
||||
get "/channel/:ucid/community", Routes::Channels, :community
|
||||
get "/channel/:ucid/channels", Routes::Channels, :channels
|
||||
get "/channel/:ucid/about", Routes::Channels, :about
|
||||
+
|
||||
get "/channel/:ucid/live", Routes::Channels, :live
|
||||
get "/user/:user/live", Routes::Channels, :live
|
||||
get "/c/:user/live", Routes::Channels, :live
|
||||
|
||||
- {"", "/videos", "/shorts", "/streams", "/playlists", "/community", "/about"}.each do |path|
|
||||
- # /c/LinusTechTips
|
||||
- get "/c/:user#{path}", Routes::Channels, :brand_redirect
|
||||
- # /user/linustechtips | Not always the same as /c/
|
||||
- get "/user/:user#{path}", Routes::Channels, :brand_redirect
|
||||
- # /@LinusTechTips | Handle
|
||||
- get "/@:user#{path}", Routes::Channels, :brand_redirect
|
||||
- # /attribution_link?a=anything&u=/channel/UCZYTClx2T1of7BRZ86-8fow
|
||||
- get "/attribution_link#{path}", Routes::Channels, :brand_redirect
|
||||
- # /profile?user=linustechtips
|
||||
- get "/profile/#{path}", Routes::Channels, :profile
|
||||
- end
|
||||
+ # Channel catch-all, to redirect future routes to the channel's home
|
||||
+ # NOTE: defined last in order to be processed after the other routes
|
||||
+ get "/channel/:ucid/*", Routes::Channels, :home
|
||||
+
|
||||
+ # /c/LinusTechTips
|
||||
+ get "/c/:user", Routes::Channels, :brand_redirect
|
||||
+ get "/c/:user/:tab", Routes::Channels, :brand_redirect
|
||||
+
|
||||
+ # /user/linustechtips (Not always the same as /c/)
|
||||
+ get "/user/:user", Routes::Channels, :brand_redirect
|
||||
+ get "/user/:user/:tab", Routes::Channels, :brand_redirect
|
||||
+
|
||||
+ # /@LinusTechTips (Handle)
|
||||
+ get "/@:user", Routes::Channels, :brand_redirect
|
||||
+ get "/@:user/:tab", Routes::Channels, :brand_redirect
|
||||
+
|
||||
+ # /attribution_link?a=anything&u=/channel/UCZYTClx2T1of7BRZ86-8fow
|
||||
+ get "/attribution_link", Routes::Channels, :brand_redirect
|
||||
+ get "/attribution_link/:tab", Routes::Channels, :brand_redirect
|
||||
+
|
||||
+ # /profile?user=linustechtips
|
||||
+ get "/profile", Routes::Channels, :profile
|
||||
+ get "/profile/*", Routes::Channels, :profile
|
||||
end
|
||||
|
||||
def register_watch_routes
|
||||
|
||||
From 2425c47882feaa56a69f6ba842cf1cb9d5b450e0 Mon Sep 17 00:00:00 2001
|
||||
From: Samantaz Fox <coding@samantaz.fr>
|
||||
Date: Wed, 13 Sep 2023 23:41:31 +0200
|
||||
Subject: [PATCH 2/2] Routing: Add support for the '/live/<id>' route
|
||||
|
||||
---
|
||||
src/invidious/routing.cr | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/invidious/routing.cr b/src/invidious/routing.cr
|
||||
index 5ec7fae3..f6b3aaa6 100644
|
||||
--- a/src/invidious/routing.cr
|
||||
+++ b/src/invidious/routing.cr
|
||||
@@ -158,6 +158,7 @@ module Invidious::Routing
|
||||
get "/watch", Routes::Watch, :handle
|
||||
post "/watch_ajax", Routes::Watch, :mark_watched
|
||||
get "/watch/:id", Routes::Watch, :redirect
|
||||
+ get "/live/:id", Routes::Watch, :redirect
|
||||
get "/shorts/:id", Routes::Watch, :redirect
|
||||
get "/clip/:clip", Routes::Watch, :clip
|
||||
get "/w/:id", Routes::Watch, :redirect
|
||||
Reference in New Issue
Block a user