summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsyeopite <syeopite@syeopite.dev>2021-03-26 18:36:40 -0700
committersyeopite <syeopite@syeopite.dev>2021-06-19 04:16:17 -0700
commit31fa3dfd590b00e5c994103f0b2fb1f1969d9b9d (patch)
tree0836e88b14cb186d265121ff482705dca7624cb9
parent5b47438b7112d46f7d19e899475e393c5eb0aa52 (diff)
downloadinvidious-31fa3dfd590b00e5c994103f0b2fb1f1969d9b9d.tar.gz
invidious-31fa3dfd590b00e5c994103f0b2fb1f1969d9b9d.tar.bz2
invidious-31fa3dfd590b00e5c994103f0b2fb1f1969d9b9d.zip
Add route to redirect to another instance
-rw-r--r--src/invidious.cr1
-rw-r--r--src/invidious/routes/misc.cr6
2 files changed, 7 insertions, 0 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index 7037ecfe..b1ee1525 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -314,6 +314,7 @@ Invidious::Routing.get "/shorts/:id", Invidious::Routes::Watch, :redirect
Invidious::Routing.get "/w/:id", Invidious::Routes::Watch, :redirect
Invidious::Routing.get "/v/:id", Invidious::Routes::Watch, :redirect
Invidious::Routing.get "/e/:id", Invidious::Routes::Watch, :redirect
+Invidious::Routing.get "/redirect", Invidious::Routes::Misc, :cross_instance_redirect
Invidious::Routing.get "/embed/", Invidious::Routes::Embed, :redirect
Invidious::Routing.get "/embed/:id", Invidious::Routes::Embed, :show
diff --git a/src/invidious/routes/misc.cr b/src/invidious/routes/misc.cr
index d32ba892..857d0596 100644
--- a/src/invidious/routes/misc.cr
+++ b/src/invidious/routes/misc.cr
@@ -35,4 +35,10 @@ class Invidious::Routes::Misc < Invidious::Routes::BaseRoute
locale = LOCALES[env.get("preferences").as(Preferences).locale]?
rendered "licenses"
end
+
+ def cross_instance_redirect(env)
+ id = env.params.query["id"]
+ instance_url = fetch_random_instance
+ env.redirect "https://#{instance_url}/watch?v=#{id}"
+ end
end