From bb3a01f8c1cd182afd92e677898dedd8ef79136e Mon Sep 17 00:00:00 2001 From: Ben Busby Date: Wed, 5 Apr 2023 13:04:17 -0600 Subject: [PATCH] Move SearXNG instance check to nightly build searx.space includes metrics for instance uptime, which is now implemented as part of farside's nightly build. Accordingly, the instance availability task built into farside now excludes searxng instances. Closes #95 --- .github/workflows/update-instances.yml | 1 + lib/farside/instances.ex | 30 ++++++++++++++++---------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/.github/workflows/update-instances.yml b/.github/workflows/update-instances.yml index 1416b46..3eb126f 100644 --- a/.github/workflows/update-instances.yml +++ b/.github/workflows/update-instances.yml @@ -93,6 +93,7 @@ jobs: select(.value.version | . != null) | select(.value.network.asn_privacy == 0) | select(.value.http.error == null) | + select(.value.uptime.uptimeDay >= 99) | select(.value.tls.grade == "A+" or .value.tls.grade == "A") | select(.value.http.grade == "A+" or .value.http.grade == "A") | select(.value.html.grade == "V" or .value.html.grade == "F") | diff --git a/lib/farside/instances.ex b/lib/farside/instances.ex index c358d09..7b743a9 100644 --- a/lib/farside/instances.ex +++ b/lib/farside/instances.ex @@ -7,6 +7,10 @@ defmodule Farside.Instances do @debug_header "======== " @debug_spacer " " + # SearXNG instance uptimes are inspected as part of the nightly Farside build, + # and should not be included in the constant periodic update. + @skip_service_updates ["searxng"] + def sync() do File.rename(@update_file, "#{@update_file}-prev") update() @@ -51,19 +55,23 @@ defmodule Farside.Instances do IO.puts("#{@debug_header}#{service.type}") - result = - Enum.filter(service.instances, fn instance_url -> - request_url = - instance_url <> - EEx.eval_string( - service.test_url, - query: Enum.random(@queries) - ) + result = cond do + Enum.member?(@skip_service_updates, service.type) -> + service.instances + true -> + Enum.filter(service.instances, fn instance_url -> + request_url = + instance_url <> + EEx.eval_string( + service.test_url, + query: Enum.random(@queries) + ) - IO.puts("#{@debug_spacer}#{request_url}") + IO.puts("#{@debug_spacer}#{request_url}") - request(request_url) == :good - end) + request(request_url) == :good + end) + end add_to_db(service, result) log_results(service.type, result)