From 0546a73bfaef384b948acad27a92ca02bf44e3bf Mon Sep 17 00:00:00 2001 From: epicsam123 <92618898+epicsam123@users.noreply.github.com> Date: Wed, 22 Jan 2025 17:33:54 -0500 Subject: [PATCH 1/5] Pick a different instance upon redirect --- src/invidious/routes/misc.cr | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/invidious/routes/misc.cr b/src/invidious/routes/misc.cr index 8b620d63..152bc2cb 100644 --- a/src/invidious/routes/misc.cr +++ b/src/invidious/routes/misc.cr @@ -40,14 +40,23 @@ module Invidious::Routes::Misc def self.cross_instance_redirect(env) referer = get_referer(env) + redirect_url = "redirect.invidious.io" instance_list = Invidious::Jobs::InstanceListRefreshJob::INSTANCES["INSTANCES"] if instance_list.empty? - instance_url = "redirect.invidious.io" + instance_url = redirect_url else # Sample returns an array # Instances are packaged as {region, domain} in the instance list - instance_url = instance_list.sample(1)[0][1] + # Filter out the current instance + other_available_instances = instance_list.reject! { |region, domain| domain == CONFIG.domain } + + # If there are any other instances, select a random one + if other_available_instances.any? + instance_url = other_available_instances.sample(1)[0][1] + else + # If the current instance is the only one, use the redirect URL as fallback + instance_url = redirect_url end env.redirect "https://#{instance_url}#{referer}" From 6816ded0fa29dd5d45e0858b5dd8fbe8d0f3f35a Mon Sep 17 00:00:00 2001 From: epicsam123 <92618898+epicsam123@users.noreply.github.com> Date: Thu, 23 Jan 2025 22:17:46 -0500 Subject: [PATCH 2/5] add missing end statement --- src/invidious/routes/misc.cr | 1 + 1 file changed, 1 insertion(+) diff --git a/src/invidious/routes/misc.cr b/src/invidious/routes/misc.cr index 152bc2cb..27a28994 100644 --- a/src/invidious/routes/misc.cr +++ b/src/invidious/routes/misc.cr @@ -57,6 +57,7 @@ module Invidious::Routes::Misc else # If the current instance is the only one, use the redirect URL as fallback instance_url = redirect_url + end end env.redirect "https://#{instance_url}#{referer}" From afb0aad7d36bf907b46df87432c65a9b45eb678d Mon Sep 17 00:00:00 2001 From: epicsam123 <92618898+epicsam123@users.noreply.github.com> Date: Fri, 24 Jan 2025 21:54:10 -0500 Subject: [PATCH 3/5] moved comments --- src/invidious/routes/misc.cr | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/invidious/routes/misc.cr b/src/invidious/routes/misc.cr index 27a28994..96d6e61f 100644 --- a/src/invidious/routes/misc.cr +++ b/src/invidious/routes/misc.cr @@ -46,13 +46,13 @@ module Invidious::Routes::Misc if instance_list.empty? instance_url = redirect_url else - # Sample returns an array - # Instances are packaged as {region, domain} in the instance list # Filter out the current instance other_available_instances = instance_list.reject! { |region, domain| domain == CONFIG.domain } # If there are any other instances, select a random one if other_available_instances.any? + # Sample returns an array + # Instances are packaged as {region, domain} in the instance list instance_url = other_available_instances.sample(1)[0][1] else # If the current instance is the only one, use the redirect URL as fallback From 0fd480bae2f22848528f0f526bbae410801d486d Mon Sep 17 00:00:00 2001 From: epicsam123 <92618898+epicsam123@users.noreply.github.com> Date: Sat, 25 Jan 2025 03:24:38 -0500 Subject: [PATCH 4/5] lint edits, refactor --- src/invidious/routes/misc.cr | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/src/invidious/routes/misc.cr b/src/invidious/routes/misc.cr index 96d6e61f..09248145 100644 --- a/src/invidious/routes/misc.cr +++ b/src/invidious/routes/misc.cr @@ -40,24 +40,19 @@ module Invidious::Routes::Misc def self.cross_instance_redirect(env) referer = get_referer(env) - redirect_url = "redirect.invidious.io" instance_list = Invidious::Jobs::InstanceListRefreshJob::INSTANCES["INSTANCES"] - if instance_list.empty? - instance_url = redirect_url - else - # Filter out the current instance - other_available_instances = instance_list.reject! { |region, domain| domain == CONFIG.domain } + # Filter out the current instance + other_available_instances = instance_list.reject! { |_, domain| domain == CONFIG.domain } - # If there are any other instances, select a random one - if other_available_instances.any? - # Sample returns an array - # Instances are packaged as {region, domain} in the instance list - instance_url = other_available_instances.sample(1)[0][1] - else - # If the current instance is the only one, use the redirect URL as fallback - instance_url = redirect_url - end + if other_available_instances.empty? + # If the current instance is the only one, use the redirect URL as fallback + instance_url = "redirect.invidious.io" + else + # Select other random instance + # Sample returns an array + # Instances are packaged as {region, domain} in the instance list + instance_url = other_available_instances.sample(1)[0][1] end env.redirect "https://#{instance_url}#{referer}" From a77f083a0ab6d018023791d113cfbf97a05f315d Mon Sep 17 00:00:00 2001 From: epicsam123 <92618898+epicsam123@users.noreply.github.com> Date: Sun, 26 Jan 2025 16:42:59 -0500 Subject: [PATCH 5/5] remove ! on reject --- src/invidious/routes/misc.cr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/invidious/routes/misc.cr b/src/invidious/routes/misc.cr index 09248145..0b868755 100644 --- a/src/invidious/routes/misc.cr +++ b/src/invidious/routes/misc.cr @@ -43,7 +43,7 @@ module Invidious::Routes::Misc instance_list = Invidious::Jobs::InstanceListRefreshJob::INSTANCES["INSTANCES"] # Filter out the current instance - other_available_instances = instance_list.reject! { |_, domain| domain == CONFIG.domain } + other_available_instances = instance_list.reject { |_, domain| domain == CONFIG.domain } if other_available_instances.empty? # If the current instance is the only one, use the redirect URL as fallback