From 97dc90ae792c3ad876dd5d60c79fb33c23706096 Mon Sep 17 00:00:00 2001
From: syeopite
Date: Sat, 2 Oct 2021 11:51:15 -0700
Subject: [PATCH 1/4] Only use /redirect when automatically redirecting
---
src/invidious/routes/misc.cr | 2 +-
src/invidious/views/channel.ecr | 6 +++-
src/invidious/views/community.ecr | 6 +++-
src/invidious/views/components/item.ecr | 31 +++----------------
.../components/video-context-buttons.ecr | 21 +++++++++++++
src/invidious/views/playlist.ecr | 13 ++++++--
src/invidious/views/playlists.ecr | 6 +++-
src/invidious/views/preferences.ecr | 2 +-
src/invidious/views/watch.ecr | 4 +++
9 files changed, 57 insertions(+), 34 deletions(-)
create mode 100644 src/invidious/views/components/video-context-buttons.ecr
diff --git a/src/invidious/routes/misc.cr b/src/invidious/routes/misc.cr
index 0e6356d0e..94d542836 100644
--- a/src/invidious/routes/misc.cr
+++ b/src/invidious/routes/misc.cr
@@ -42,7 +42,7 @@ module Invidious::Routes::Misc
referer = get_referer(env)
if !env.get("preferences").as(Preferences).automatic_instance_redirect
- return env.redirect("https://redirect.invidious.io#{referer}")
+ return env.redirect("https://redirect.invidious.io/#{referer}")
end
instance_url = fetch_random_instance
diff --git a/src/invidious/views/channel.ecr b/src/invidious/views/channel.ecr
index 7f797e376..66f1ae10e 100644
--- a/src/invidious/views/channel.ecr
+++ b/src/invidious/views/channel.ecr
@@ -45,7 +45,11 @@
<%= translate(locale, "View channel on YouTube") %>
<% if !channel.auto_generated %>
diff --git a/src/invidious/views/community.ecr b/src/invidious/views/community.ecr
index 15d8ed1e0..17bc4f89b 100644
--- a/src/invidious/views/community.ecr
+++ b/src/invidious/views/community.ecr
@@ -44,7 +44,11 @@
<%= translate(locale, "View channel on YouTube") %>
<% if !channel.auto_generated %>
diff --git a/src/invidious/views/components/item.ecr b/src/invidious/views/components/item.ecr
index d084bfd4d..1852d3659 100644
--- a/src/invidious/views/components/item.ecr
+++ b/src/invidious/views/components/item.ecr
@@ -79,19 +79,8 @@
-
+ <% endpoint_params = "?v=#{item.id}&list=#{item.plid}" %>
+ <%= rendered "components/video-context-buttons" %>
@@ -155,19 +144,9 @@
-
+
+ <% endpoint_params = "?v=#{item.id}" %>
+ <%= rendered "components/video-context-buttons" %>
<% end %>
diff --git a/src/invidious/views/playlists.ecr b/src/invidious/views/playlists.ecr
index 1245256fe..74890f5a1 100644
--- a/src/invidious/views/playlists.ecr
+++ b/src/invidious/views/playlists.ecr
@@ -47,7 +47,11 @@
diff --git a/src/invidious/views/preferences.ecr b/src/invidious/views/preferences.ecr
index 401c15ea6..5999169ad 100644
--- a/src/invidious/views/preferences.ecr
+++ b/src/invidious/views/preferences.ecr
@@ -186,7 +186,7 @@
<%= translate(locale, "Automaticatic instance redirection (fallback to redirect.invidious.io): ") %>
- checked<% end %>>
+ checked<% end %>>
<% if env.get? "user" %>
diff --git a/src/invidious/views/watch.ecr b/src/invidious/views/watch.ecr
index 68e7eb801..845b01177 100644
--- a/src/invidious/views/watch.ecr
+++ b/src/invidious/views/watch.ecr
@@ -116,7 +116,11 @@ we're going to need to do it here in order to allow for translations.
(
<%= translate(locale, "Embed") %> )
+ <% if env.get("preferences").as(Preferences).automatic_instance_redirect%>
"><%= translate(locale, "Switch Invidious Instance") %>
+ <% else %>
+ "><%= translate(locale, "Switch Invidious Instance") %>
+ <% end %>
<%= translate(locale, "Embed Link") %>
From 67cd9c0dd96b35d89cd73a6b93c510cc341ccbb5 Mon Sep 17 00:00:00 2001
From: syeopite
Date: Sat, 2 Oct 2021 12:25:22 -0700
Subject: [PATCH 2/4] Remove unneeded redirect.invidious.io code in /redirect
---
src/invidious/routes/misc.cr | 5 -----
1 file changed, 5 deletions(-)
diff --git a/src/invidious/routes/misc.cr b/src/invidious/routes/misc.cr
index 94d542836..3ea4c2727 100644
--- a/src/invidious/routes/misc.cr
+++ b/src/invidious/routes/misc.cr
@@ -40,11 +40,6 @@ module Invidious::Routes::Misc
def self.cross_instance_redirect(env)
referer = get_referer(env)
-
- if !env.get("preferences").as(Preferences).automatic_instance_redirect
- return env.redirect("https://redirect.invidious.io/#{referer}")
- end
-
instance_url = fetch_random_instance
env.redirect "https://#{instance_url}#{referer}"
end
From 2c4a30de554f6405937ef8fee993aa79140f293c Mon Sep 17 00:00:00 2001
From: syeopite
Date: Fri, 15 Oct 2021 07:45:36 -0700
Subject: [PATCH 3/4] Rebase error
---
src/invidious/views/components/video-context-buttons.ecr | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/invidious/views/components/video-context-buttons.ecr b/src/invidious/views/components/video-context-buttons.ecr
index 062c3de00..daa107f0e 100644
--- a/src/invidious/views/components/video-context-buttons.ecr
+++ b/src/invidious/views/components/video-context-buttons.ecr
@@ -8,7 +8,7 @@
<% if env.get("preferences").as(Preferences).automatic_instance_redirect%>
- " href="/redirect?referer=%2Fwatch<%=endpoint_params%>">
+ " href="/redirect?referer=%2Fwatch<%=URI.encode_www_form(endpoint_params)%>">
<% else %>
From 31fd593e93c6e10957001377c8b04add9436e25a Mon Sep 17 00:00:00 2001
From: syeopite
Date: Fri, 15 Oct 2021 14:40:59 -0700
Subject: [PATCH 4/4] Use env.request.resource for instance switch link
---
src/invidious/views/channel.ecr | 2 +-
src/invidious/views/community.ecr | 2 +-
src/invidious/views/playlist.ecr | 2 +-
src/invidious/views/playlists.ecr | 2 +-
src/invidious/views/watch.ecr | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/invidious/views/channel.ecr b/src/invidious/views/channel.ecr
index 66f1ae10e..40b553a9c 100644
--- a/src/invidious/views/channel.ecr
+++ b/src/invidious/views/channel.ecr
@@ -48,7 +48,7 @@
<% if env.get("preferences").as(Preferences).automatic_instance_redirect%>
"><%= translate(locale, "Switch Invidious Instance") %>
<% else %>
- "><%= translate(locale, "Switch Invidious Instance") %>
+ <%= translate(locale, "Switch Invidious Instance") %>
<% end %>
<% if !channel.auto_generated %>
diff --git a/src/invidious/views/community.ecr b/src/invidious/views/community.ecr
index 17bc4f89b..f0add06bf 100644
--- a/src/invidious/views/community.ecr
+++ b/src/invidious/views/community.ecr
@@ -47,7 +47,7 @@
<% if env.get("preferences").as(Preferences).automatic_instance_redirect%>
"><%= translate(locale, "Switch Invidious Instance") %>
<% else %>
-
"><%= translate(locale, "Switch Invidious Instance") %>
+
<%= translate(locale, "Switch Invidious Instance") %>
<% end %>
<% if !channel.auto_generated %>
diff --git a/src/invidious/views/playlist.ecr b/src/invidious/views/playlist.ecr
index 4c23ad986..d0518de77 100644
--- a/src/invidious/views/playlist.ecr
+++ b/src/invidious/views/playlist.ecr
@@ -47,7 +47,7 @@
<%= translate(locale, "Switch Invidious Instance") %>
<% else %>
- ">
+
<%= translate(locale, "Switch Invidious Instance") %>
<% end %>
diff --git a/src/invidious/views/playlists.ecr b/src/invidious/views/playlists.ecr
index 74890f5a1..12dba088f 100644
--- a/src/invidious/views/playlists.ecr
+++ b/src/invidious/views/playlists.ecr
@@ -50,7 +50,7 @@
<% if env.get("preferences").as(Preferences).automatic_instance_redirect%>
"><%= translate(locale, "Switch Invidious Instance") %>
<% else %>
- "><%= translate(locale, "Switch Invidious Instance") %>
+ <%= translate(locale, "Switch Invidious Instance") %>
<% end %>
diff --git a/src/invidious/views/watch.ecr b/src/invidious/views/watch.ecr
index 845b01177..6018e5c2d 100644
--- a/src/invidious/views/watch.ecr
+++ b/src/invidious/views/watch.ecr
@@ -119,7 +119,7 @@ we're going to need to do it here in order to allow for translations.
<% if env.get("preferences").as(Preferences).automatic_instance_redirect%>
"><%= translate(locale, "Switch Invidious Instance") %>
<% else %>
- "><%= translate(locale, "Switch Invidious Instance") %>
+ <%= translate(locale, "Switch Invidious Instance") %>
<% end %>