Roland Häder [Mon, 2 Oct 2023 07:56:43 +0000 (09:56 +0200)]
Continued:
- ordered SELECT statement for update_nodeinfo() command
- added --no-auto as another "filter" parameter
- don't check domains that turn e.g. into an IP address before redirecting to
them
Roland Häder [Sat, 30 Sep 2023 11:11:41 +0000 (13:11 +0200)]
Continued:
- Paula has finally seen the wrong outcome of publishing a #FediBlock list
publicly:
"Too many people use blocklists as-is and don't use their own brain. Blindly
blocking instances because someone else says so is not good."
Roland Häder [Tue, 12 Sep 2023 10:00:19 +0000 (12:00 +0200)]
Continued:
- added command 'fetch_csv' which fetches CSV files and processes them for
further instance discovery and blocklist expansion
- introduced function processing.csv_block() which does the above processing
- return non-zero exit code when source was queried to recently
Roland Häder [Tue, 12 Sep 2023 01:40:31 +0000 (03:40 +0200)]
Continued:
- please execute SQL command:
"UPDATE instances SET command = 'redirect_target' WHERE command = 'fetch_generator';"
- yes, it is done during detection mode 'generator' but it was discovered as
redirection target
Roland Häder [Mon, 11 Sep 2023 20:27:46 +0000 (22:27 +0200)]
Continued:
- some people think that CamelCase.Domain is something to be proud of
- truth is, that those upper-case characters are being lower-cased before a DNS
server is been queried
Roland Häder [Mon, 11 Sep 2023 19:53:11 +0000 (21:53 +0200)]
Continued:
- instances.has_pending() raises an exception if domain is not registered yet
- instances.update() checks is_registered() first, then has_pending()
Roland Häder [Wed, 6 Sep 2023 08:58:23 +0000 (10:58 +0200)]
Continued:
- added last_response_time which is a float that stores the last response time
- you have to run following SQL statement on your blocks.db:
ALTER TABLE instances ADD last_response_time FLOAT NULL DEFAULT NULL;
Roland Häder [Wed, 6 Sep 2023 02:02:26 +0000 (04:02 +0200)]
Continued:
- introduced software_helper.is_relay() function to check if given software name
is a supported relay software
- federation.fetch_instances() will throw an exception if invoked with relay
software
- also command fetch_instances avoids them
Roland Häder [Wed, 6 Sep 2023 01:37:48 +0000 (03:37 +0200)]
Continued:
- fetch_relays now supports --software=foo parameter
- added support for 'pub-relay' relays, they provide their peers over their
nodeinfo URL (see element metadata -> peers)
Roland Häder [Mon, 4 Sep 2023 07:54:14 +0000 (09:54 +0200)]
Continued:
- functions in module fba.helpers.tidyup are relatively "expensive", means they
need a lot of CPU cycles
- let's avoid invoking them on empty string
Roland Häder [Tue, 29 Aug 2023 05:52:42 +0000 (07:52 +0200)]
Another attempt to rewrite:
- don't update nodeinfo URL and detection mode to STATIC_CHECK while fetching
blocks for Pleroma
- Pleroma has their block list exposed in that nodeinfo and not in separate API
Roland Häder [Mon, 28 Aug 2023 14:30:09 +0000 (16:30 +0200)]
Continued:
- some misskey instances may have no nodeinfo URL, e.g. they got only detected
through APP_NAME method
- still they may provide a blocklist
- it is now rewritten that first a generic "/api/v1/instance/domain_blocks" is
fetched and if it fails, a software-specific attempt is done
Roland Häder [Fri, 25 Aug 2023 23:31:52 +0000 (01:31 +0200)]
Continued:
- I hope this isn't to strict, some hosts return a "298 None" which the HTTP
library doesn't see as failed (response.ok = False) but still doesn't return
a JSON
Roland Häder [Thu, 24 Aug 2023 19:12:14 +0000 (21:12 +0200)]
Continued:
- added parameter --software3 which searchinf for a file 'software.txt'
- you can generate this by running e.g.
sqlite3 ./blocks.db "SELECT software FROM instances WHAT_EVER_PARAMETER;" > software.txt
- reset nodeinfo_url if software is now None
- always set complete URL, including domain
Roland Häder [Thu, 24 Aug 2023 18:35:55 +0000 (20:35 +0200)]
Continued:
- renamed fetch_nodeinfo() to fetch() as it is already part of module nodeinfo
- added 3rd optional parameter to it, fetching of /.well-known/* isn't then
required anymore and saves another request
- also the wanted URL can be directly used
Roland Häder [Tue, 22 Aug 2023 18:34:24 +0000 (20:34 +0200)]
Continued:
- added parameter --no-software which fetching instances with no software
detected and not recently being checked
- the parameter --force is not re-checking recently entries. If you want this
you need to use ./nodeinfo.sh --software --force but be kind to other
webmasters!
Roland Häder [Wed, 16 Aug 2023 22:56:19 +0000 (00:56 +0200)]
Continued:
- no, nope: validators.hostname() was a bad idea, it also let IP addresses and
local host names in as well
- added command remove_invalid to remove those from database
- renamed recheck.sh -> nodeinfo.sh
Roland Häder [Wed, 16 Aug 2023 13:27:44 +0000 (15:27 +0200)]
Continued:
- chaos.social isn't part of oliphant, so it still requires being handled
separately
- fetch software/origin from local database instead software from remote
nodeinfo (saves some requests to their servers)
Roland Häder [Tue, 15 Aug 2023 19:05:10 +0000 (21:05 +0200)]
Continued:
- don't invoke federation.fetch_instances() when last_instance_fetch is
recently being updated (means recently being fetch already)
- column for instances.is_recent() needs to now only start with "last_"
- don't determine unknown software if instances was recently fetched
Roland Häder [Tue, 15 Aug 2023 17:12:09 +0000 (19:12 +0200)]
Continued:
- typical for oliphant members: Hide their own blocklist and then handle it
over to Codeberg repository of oliphant
- this helper now has a simple function to check if the provided domain should
be excluded
Roland Häder [Mon, 14 Aug 2023 04:03:15 +0000 (06:03 +0200)]
Continued:
- added detection-mode 'APP_NAME' which reflects meta information
name="application-name"
- allow checking generator type if status code 410 (Gone) is given, e.g.
wordpress.com still returns a full HTML code to check
Roland Häder [Sun, 13 Aug 2023 17:13:36 +0000 (19:13 +0200)]
Continued:
- added --software2 for re-checking instances with `software` given and no
`detection_mode` given
- also added og:platform to HTML base template
Roland Häder [Tue, 8 Aug 2023 18:14:54 +0000 (20:14 +0200)]
Continued:
- you can now with --feed=https://some-fba/feed.atom specify an other ATOM feed
from an FBA/Pleroma bot
- parserset_defaults() is now specified first, then additional parameter
Roland Häder [Sat, 5 Aug 2023 21:54:19 +0000 (23:54 +0200)]
Continued:
- added network 'mammuthus[ experimental]' for retriving peers
- moved software-related (not version number) functions to software.py
- strip off " experimental", so you can enter e.g. 'mammuthus' easier