From 7e47e9536aa347d8a0ea24dfef3c034ad50d9a76 Mon Sep 17 00:00:00 2001 From: Ben Busby Date: Wed, 23 Aug 2023 13:46:51 -0600 Subject: [PATCH] Poll nitter instances only in nightly build From the recent changes to twitter/X, it sounds like guest accounts are now required for nitter, which are more easily rate limited. To avoid any impact from Farside, the instances are now health checked in the nightly build using https://status.d420.de (this doesn't seem to be directly associated with the nitter maintainers, so might not be entirely future-proof). --- .github/workflows/update-instances.yml | 17 +++++++++++++++++ lib/farside/instances.ex | 4 ++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update-instances.yml b/.github/workflows/update-instances.yml index 5cda693..ed1df77 100644 --- a/.github/workflows/update-instances.yml +++ b/.github/workflows/update-instances.yml @@ -109,6 +109,23 @@ jobs: apply_update + # ============================================================== + # Nitter update + # ============================================================== + curl -s https://status.d420.de/api/v1/instances | \ + jq '[ + .hosts | + to_entries[] | + select(.value.healthy == true) | + .value.url ] | + sort' > nitter-tmp.json + + jq --slurpfile nitter nitter-tmp.json \ + '( .[] | select(.type == "nitter") ) + .instances |= $nitter[0]' services-full.json > services.tmp.json + + apply_update + # ============================================================== # SimplyTranslate update # ============================================================== diff --git a/lib/farside/instances.ex b/lib/farside/instances.ex index d02a082..d0d26f6 100644 --- a/lib/farside/instances.ex +++ b/lib/farside/instances.ex @@ -7,9 +7,9 @@ defmodule Farside.Instances do @debug_header "======== " @debug_spacer " " - # SearXNG instance uptimes are inspected as part of the nightly Farside build, + # These 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"] + @skip_service_updates ["searxng", "nitter"] def sync() do File.rename(@update_file, "#{@update_file}-prev")