mirror of
				https://github.com/iv-org/invidious.git
				synced 2025-11-04 06:31:57 +00:00 
			
		
		
		
	Merge pull request #2444 from syeopite/only-use-redirect-endpoint-when-needed
Only use the /redirect endpoint when automatically redirecting to another instance
This commit is contained in:
		@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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">
 | 
			
		||||
 
 | 
			
		||||
@@ -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">
 | 
			
		||||
 
 | 
			
		||||
@@ -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 %>&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 %>&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">
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								src/invidious/views/components/video-context-buttons.ecr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								src/invidious/views/components/video-context-buttons.ecr
									
									
									
									
									
										Normal file
									
								
							@@ -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>
 | 
			
		||||
@@ -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>
 | 
			
		||||
 
 | 
			
		||||
@@ -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">
 | 
			
		||||
 
 | 
			
		||||
@@ -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>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user