aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/WWW/FairViewer.pm15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/WWW/FairViewer.pm b/lib/WWW/FairViewer.pm
index 31ed311..3546fb4 100644
--- a/lib/WWW/FairViewer.pm
+++ b/lib/WWW/FairViewer.pm
@@ -548,7 +548,7 @@ sub get_invidious_instances {
}
sub select_good_invidious_instances {
- my ($self) = @_;
+ my ($self, %args) = @_;
state $instances = $self->get_invidious_instances;
@@ -561,13 +561,13 @@ sub select_good_invidious_instances {
'vid.mint.lgbt' => 1,
'invidious.ggc-project.de' => 1,
'invidious.toot.koeln' => 1,
- 'invidious.kavin.rocks' => 1,
+ 'invidious.kavin.rocks' => 0,
'invidious.snopyta.org' => 0,
);
my @candidates =
grep { not $ignored{$_->[0]} }
- grep { ref($_->[1]{monitor}) eq 'HASH' ? ($_->[1]{monitor}{statusClass} eq 'success') : 1 }
+ grep { ref($_->[1]{monitor}) eq 'HASH' ? ($_->[1]{monitor}{statusClass} eq 'success') : $args{lax} }
grep { lc($_->[1]{type} // '') eq 'https' } @$instances;
if ($self->get_debug) {
@@ -584,6 +584,11 @@ sub select_good_invidious_instances {
sub pick_random_instance {
my ($self) = @_;
my @candidates = $self->select_good_invidious_instances();
+
+ if (not @candidates) {
+ @candidates = $self->select_good_invidious_instances(lax => 1);
+ }
+
$candidates[rand @candidates];
}
@@ -676,6 +681,10 @@ sub _extract_from_invidious {
my @instances = $self->select_good_invidious_instances();
+ if (not @instances) {
+ @instances = $self->select_good_invidious_instances(lax => 1);
+ }
+
if (@instances) {
require List::Util;
@instances = List::Util::shuffle(map { $_->[0] } @instances);