diff options
| author | Ben Busby <contact@benbusby.com> | 2023-04-05 13:04:17 -0600 |
|---|---|---|
| committer | Ben Busby <contact@benbusby.com> | 2023-04-05 13:04:17 -0600 |
| commit | bb3a01f8c1cd182afd92e677898dedd8ef79136e (patch) | |
| tree | 37ce4c2400974133f62a83c4ec4c6f8833123bf1 | |
| parent | 65c12769bfb2275c9398e246ec2f4ccbba556fb7 (diff) | |
| download | farside-bb3a01f8c1cd182afd92e677898dedd8ef79136e.tar.gz | |
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
| -rw-r--r-- | .github/workflows/update-instances.yml | 1 | ||||
| -rw-r--r-- | lib/farside/instances.ex | 34 |
2 files changed, 22 insertions, 13 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) - ) - - IO.puts("#{@debug_spacer}#{request_url}") - - request(request_url) == :good - end) + 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}") + + request(request_url) == :good + end) + end add_to_db(service, result) log_results(service.type, result) |
