summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/invidious/routes/misc.cr9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/invidious/routes/misc.cr b/src/invidious/routes/misc.cr
index 8b620d63..0b868755 100644
--- a/src/invidious/routes/misc.cr
+++ b/src/invidious/routes/misc.cr
@@ -42,12 +42,17 @@ module Invidious::Routes::Misc
referer = get_referer(env)
instance_list = Invidious::Jobs::InstanceListRefreshJob::INSTANCES["INSTANCES"]
- if instance_list.empty?
+ # Filter out the current instance
+ 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
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 = instance_list.sample(1)[0][1]
+ instance_url = other_available_instances.sample(1)[0][1]
end
env.redirect "https://#{instance_url}#{referer}"