summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/invidious/routes/misc.cr5
-rw-r--r--src/invidious/views/channel.ecr6
-rw-r--r--src/invidious/views/community.ecr6
-rw-r--r--src/invidious/views/components/item.ecr31
-rw-r--r--src/invidious/views/components/video-context-buttons.ecr21
-rw-r--r--src/invidious/views/playlist.ecr13
-rw-r--r--src/invidious/views/playlists.ecr6
-rw-r--r--src/invidious/views/watch.ecr4
8 files changed, 55 insertions, 37 deletions
diff --git a/src/invidious/routes/misc.cr b/src/invidious/routes/misc.cr
index 0e6356d0..3ea4c272 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
diff --git a/src/invidious/views/channel.ecr b/src/invidious/views/channel.ecr
index 7f797e37..40b553a9 100644
--- a/src/invidious/views/channel.ecr
+++ b/src/invidious/views/channel.ecr
@@ -45,7 +45,11 @@
<div class="pure-u-1-3">
<a href="https://www.youtube.com/channel/<%= ucid %>"><%= translate(locale, "View channel on YouTube") %></a>
<div class="pure-u-1 pure-md-1-3">
- <a href="/redirect?referer=<%= env.get?("current_page") %>"><%= translate(locale, "Switch Invidious Instance") %></a>
+ <% if env.get("preferences").as(Preferences).automatic_instance_redirect%>
+ <a href="/redirect?referer=<%= env.get?("current_page") %>"><%= translate(locale, "Switch Invidious Instance") %></a>
+ <% else %>
+ <a href="https://redirect.invidious.io<%= env.request.path %>"><%= translate(locale, "Switch Invidious Instance") %></a>
+ <% end %>
</div>
<% if !channel.auto_generated %>
<div class="pure-u-1 pure-md-1-3">
diff --git a/src/invidious/views/community.ecr b/src/invidious/views/community.ecr
index 15d8ed1e..f0add06b 100644
--- a/src/invidious/views/community.ecr
+++ b/src/invidious/views/community.ecr
@@ -44,7 +44,11 @@
<div class="pure-u-1-3">
<a href="https://www.youtube.com/channel/<%= channel.ucid %>/community"><%= translate(locale, "View channel on YouTube") %></a>
<div class="pure-u-1 pure-md-1-3">
- <a href="/redirect?referer=<%= env.get?("current_page") %>"><%= translate(locale, "Switch Invidious Instance") %></a>
+ <% if env.get("preferences").as(Preferences).automatic_instance_redirect%>
+ <a href="/redirect?referer=<%= env.get?("current_page") %>"><%= translate(locale, "Switch Invidious Instance") %></a>
+ <% else %>
+ <a href="https://redirect.invidious.io<%= env.request.resource %>"><%= translate(locale, "Switch Invidious Instance") %></a>
+ <% end %>
</div>
<% if !channel.auto_generated %>
<div class="pure-u-1 pure-md-1-3">
diff --git a/src/invidious/views/components/item.ecr b/src/invidious/views/components/item.ecr
index 5788bf51..a58571aa 100644
--- a/src/invidious/views/components/item.ecr
+++ b/src/invidious/views/components/item.ecr
@@ -79,19 +79,8 @@
<div class="flex-left"><a href="/channel/<%= item.ucid %>">
<p class="channel-name" dir="auto"><%= HTML.escape(item.author) %></p>
</a></div>
- <div class="flex-right">
- <div class="icon-buttons">
- <a title="<%=translate(locale, "Watch on YouTube")%>" href="https://www.youtube.com/watch?v=<%= item.id %>&list=<%= item.plid %>">
- <i class="icon ion-logo-youtube"></i>
- </a>
- <a title="<%=translate(locale, "Audio mode")%>" href="/watch?v=<%= item.id %>&list=<%= item.plid %>&amp;listen=1">
- <i class="icon ion-md-headset"></i>
- </a>
- <a title="<%=translate(locale, "Switch Invidious Instance")%>" href="/redirect?referer=<%=URI.encode_www_form("watch?v=#{item.id}&list=#{item.plid}")%>">
- <i class="icon ion-md-jet"></i>
- </a>
- </div>
- </div>
+ <% endpoint_params = "?v=#{item.id}&list=#{item.plid}" %>
+ <%= rendered "components/video-context-buttons" %>
</div>
<div class="video-card-row flexible">
@@ -155,19 +144,9 @@
<div class="flex-left"><a href="/channel/<%= item.ucid %>">
<p class="channel-name" dir="auto"><%= HTML.escape(item.author) %></p>
</a></div>
- <div class="flex-right">
- <div class="icon-buttons">
- <a title="<%=translate(locale, "Watch on YouTube")%>" href="https://www.youtube.com/watch?v=<%= item.id %>">
- <i class="icon ion-logo-youtube"></i>
- </a>
- <a title="<%=translate(locale, "Audio mode")%>" href="/watch?v=<%= item.id %>&amp;listen=1">
- <i class="icon ion-md-headset"></i>
- </a>
- <a title="<%=translate(locale, "Switch Invidious Instance")%>" href="/redirect?referer=<%=URI.encode_www_form("watch?v=#{item.id}")%>">
- <i class="icon ion-md-jet"></i>
- </a>
- </div>
- </div>
+
+ <% endpoint_params = "?v=#{item.id}" %>
+ <%= rendered "components/video-context-buttons" %>
</div>
<div class="video-card-row flexible">
diff --git a/src/invidious/views/components/video-context-buttons.ecr b/src/invidious/views/components/video-context-buttons.ecr
new file mode 100644
index 00000000..daa107f0
--- /dev/null
+++ b/src/invidious/views/components/video-context-buttons.ecr
@@ -0,0 +1,21 @@
+<div class="flex-right">
+ <div class="icon-buttons">
+ <a title="<%=translate(locale, "Watch on YouTube")%>" href="https://www.youtube.com/watch<%=endpoint_params%>">
+ <i class="icon ion-logo-youtube"></i>
+ </a>
+ <a title="<%=translate(locale, "Audio mode")%>" href="/watch<%=endpoint_params%>&listen=1">
+ <i class="icon ion-md-headset"></i>
+ </a>
+
+ <% if env.get("preferences").as(Preferences).automatic_instance_redirect%>
+ <a title="<%=translate(locale, "Switch Invidious Instance")%>" href="/redirect?referer=%2Fwatch<%=URI.encode_www_form(endpoint_params)%>">
+ <i class="icon ion-md-jet"></i>
+ </a>
+ <% else %>
+ <a title="<%=translate(locale, "Switch Invidious Instance")%>" href="https://redirect.invidious.io/watch<%=endpoint_params%>">
+ <i class="icon ion-md-jet"></i>
+ </a>
+ <% end %>
+
+ </div>
+</div> \ No newline at end of file
diff --git a/src/invidious/views/playlist.ecr b/src/invidious/views/playlist.ecr
index 12f93a72..d0518de7 100644
--- a/src/invidious/views/playlist.ecr
+++ b/src/invidious/views/playlist.ecr
@@ -41,9 +41,16 @@
<%= translate(locale, "View playlist on YouTube") %>
</a>
<span> | </span>
- <a href="/redirect?referer=<%= env.get?("current_page") %>">
- <%= translate(locale, "Switch Invidious Instance") %>
- </a>
+
+ <% if env.get("preferences").as(Preferences).automatic_instance_redirect%>
+ <a href="/redirect?referer=<%= env.get?("current_page") %>">
+ <%= translate(locale, "Switch Invidious Instance") %>
+ </a>
+ <% else %>
+ <a href="https://redirect.invidious.io<%= env.request.resource %>">
+ <%= translate(locale, "Switch Invidious Instance") %>
+ </a>
+ <% end %>
</div>
<% end %>
</div>
diff --git a/src/invidious/views/playlists.ecr b/src/invidious/views/playlists.ecr
index 1245256f..12dba088 100644
--- a/src/invidious/views/playlists.ecr
+++ b/src/invidious/views/playlists.ecr
@@ -47,7 +47,11 @@
</div>
<div class="pure-u-1 pure-md-1-3">
- <a href="/redirect?referer=<%= env.get?("current_page") %>"><%= translate(locale, "Switch Invidious Instance") %></a>
+ <% if env.get("preferences").as(Preferences).automatic_instance_redirect%>
+ <a href="/redirect?referer=<%= env.get?("current_page") %>"><%= translate(locale, "Switch Invidious Instance") %></a>
+ <% else %>
+ <a href="https://redirect.invidious.io<%= env.request.resource %>"><%= translate(locale, "Switch Invidious Instance") %></a>
+ <% end %>
</div>
<div class="pure-u-1 pure-md-1-3">
diff --git a/src/invidious/views/watch.ecr b/src/invidious/views/watch.ecr
index cad36e73..2f3709dd 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.
(<a href="https://www.youtube.com/embed/<%= video.id %>"><%= translate(locale, "Embed") %></a>)
</span>
<p id="watch-on-another-invidious-instance">
+ <% if env.get("preferences").as(Preferences).automatic_instance_redirect%>
<a href="/redirect?referer=<%= env.get?("current_page") %>"><%= translate(locale, "Switch Invidious Instance") %></a>
+ <% else %>
+ <a href="https://redirect.invidious.io<%= env.request.resource %>"><%= translate(locale, "Switch Invidious Instance") %></a>
+ <% end %>
</p>
<p id="embed-link">
<a href="<%= embed_link %>"><%= translate(locale, "Embed Link") %></a>