diff options
Diffstat (limited to 'lib/WWW/FairViewer.pm')
-rw-r--r-- | lib/WWW/FairViewer.pm | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/lib/WWW/FairViewer.pm b/lib/WWW/FairViewer.pm index 41a5033..04dabf2 100644 --- a/lib/WWW/FairViewer.pm +++ b/lib/WWW/FairViewer.pm @@ -703,15 +703,20 @@ sub _make_feed_url { sub _extract_from_invidious { my ($self, $videoID) = @_; - my @instances = $self->select_good_invidious_instances(); + my @candidates = $self->select_good_invidious_instances(); + my @extra_candidates = $self->select_good_invidious_instances(lax => 1); - if (not @instances) { - @instances = $self->select_good_invidious_instances(lax => 1); - } + require List::Util; + +#<<< + my %seen; + my @instances = grep { !$seen{$_}++ } ( + List::Util::shuffle(map { $_->[0] } @candidates), + List::Util::shuffle(map { $_->[0] } @extra_candidates), + ); +#>>> if (@instances) { - require List::Util; - @instances = List::Util::shuffle(map { $_->[0] } @instances); push @instances, 'invidious.snopyta.org'; } else { |