Roland Häder [Sun, 18 Jun 2023 01:35:46 +0000 (03:35 +0200)]
Continue:
- continue checking on software type after it was discovered by
generator/site_name
- maybe it needs aliasing?
- also add 'slipfox calckey' as an alias for 'misskey'
- don't tidy-up None values
Roland Häder [Sun, 18 Jun 2023 00:53:52 +0000 (02:53 +0200)]
WIP:
- removed geneic-try/except blocks around SQL statements, let them fail and not
sys.exit() uncleanly
- raise an exception if no row has been updated, e.g. when record isn't found
Roland Häder [Sat, 17 Jun 2023 08:45:45 +0000 (10:45 +0200)]
Continued:
- need to handle requests.exceptions.InvalidSchema as well
- if variable link is not dict or does not contain 'rel' attribute for what
reason, then skip this
Roland Häder [Thu, 15 Jun 2023 23:45:16 +0000 (01:45 +0200)]
Continued:
- rewrote block for fetching nodeinfo, fetch is provided path is None or matches
with request or http[s]://domain/path
- if a protocol is given in 'path' parameter, then it needs to be removed
Roland Häder [Tue, 13 Jun 2023 22:43:29 +0000 (00:43 +0200)]
Continued:
- reformatted ({}) block
- commented out debug line
- converted print("", foo, bar) to masked (f) version
- fixed logic bug when not all needed steps were executed
Roland Häder [Tue, 13 Jun 2023 21:05:52 +0000 (23:05 +0200)]
Continued:
- always add non-existing instances, also when their software type is not
detectable, e.g. not existing
- also skip recently checked instances
Roland Häder [Tue, 13 Jun 2023 20:16:46 +0000 (22:16 +0200)]
Continued:
- re-introduced wrapper function around each column of the "model" `instances`
- marked set_data() as private (now named _set_data())
- these wrappers do NOT invoke instances.update_data(), you have to do this
from your code
Roland Häder [Tue, 13 Jun 2023 16:26:43 +0000 (18:26 +0200)]
Continued:
- 'data' is optional, e.g. empty POST bodies are okay
- fixed handling of JSON replies from peertube instances:
- the request /api/v1/server/followers is correct, then always the JSON has
"follow" and "following" as elements
Roland Häder [Tue, 13 Jun 2023 09:32:02 +0000 (11:32 +0200)]
Continued:
- domain/path might be a valid installation path, but some bug in Friendica
caused my instance to be reported as 'f.haeder.net/featured' which sucks
- still we need to let domain/path pass here as some installations might
be happening to be installed in such a way
- sure, best option is always a sub-domain ...
Roland Häder [Mon, 12 Jun 2023 22:01:25 +0000 (00:01 +0200)]
Continued:
- moved blocks, instances to new package fba.models as these modules are only
around a database table with the same name
- movved+renamed fba.log_error() to fba.models.error_log.add()
- pleroma has a /instance/about/index.html "API" which can be parsed for
block lists if the JSON has returned no 'mrf_simple' and
'quarantined_instances'
Roland Häder [Mon, 12 Jun 2023 09:22:57 +0000 (11:22 +0200)]
Continued:
- introduced instances.deobsure() for simple deobscuring attempts, e.g. when
they use * or ? when they don't want to show the domain, you can still
deobsfucate it with the hash (some provide it) or obscured domain itself
Roland Häder [Mon, 12 Jun 2023 02:48:04 +0000 (04:48 +0200)]
WIP:
- rewrote from out-dated federater blocklist to multiple up-to-date oliphant
blocklists
- also prepared for local file support (documentation prepared)
Roland Häder [Sun, 11 Jun 2023 17:59:08 +0000 (19:59 +0200)]
Continued:
- also cut off trailing double-dot (some people cannot format their data in
tables properly)
- a wildcat might be at the start of the string, so start checking there for it
Roland Häder [Sun, 11 Jun 2023 17:09:53 +0000 (19:09 +0200)]
Continued:
- reason['reason'] had been handled to tidyup.reason() which caused an error
- it needed to be flexible "detected": str, dict are only supported types for now
Roland Häder [Sun, 11 Jun 2023 16:31:22 +0000 (18:31 +0200)]
Continued:
- fixed handling of 404 (no exception) case when nodeinfo wasn't found
- copied (WIP!) fetching /about page to pleroma
- also added /about to /about/more as possible pages for misskey
Roland Häder [Sun, 11 Jun 2023 15:57:51 +0000 (17:57 +0200)]
Continued:
- .arpa domains are reverse-ip-address domains and should not be used generally
- please choose a proper domain name, e.g. lemmy.myhomepage.tld
Roland Häder [Sun, 11 Jun 2023 13:20:43 +0000 (15:20 +0200)]
Continued:
- removed another broad except block
- added missing variable initialization
- there is no 'domain', aka. instance here
- fixed bare-except, you can use 'if foo in bar' instead
Roland Häder [Sun, 11 Jun 2023 12:49:07 +0000 (14:49 +0200)]
Continued:
- handle typical network exceptions here, too
- don't sys.exit() here anymore, exit function properly
- don't 'break' here, there was no loop, better return proper error code
- fixed a few problems, found by pylint
Roland Häder [Sat, 10 Jun 2023 16:50:26 +0000 (18:50 +0200)]
Continued:
- caught more specific exception and not broad BaseException (still some are
left)
- renamed variable blocks -> blocking to avoid confusion with imported
fba.blocks
Roland Häder [Sat, 10 Jun 2023 14:29:43 +0000 (16:29 +0200)]
WIP:
- introduced network.fetch_api_url() which takes a whole URL (not domain/path
separated) and returns it's reply in a json_reply dictionary as both other
API functions are handling it
Roland Häder [Fri, 9 Jun 2023 21:29:18 +0000 (23:29 +0200)]
Continued:
- removed remains of code around pending_errors dictionary
- rewrote it towards instances.update_last_error()
- also rewrote/removed some try/except blocks
Roland Häder [Fri, 9 Jun 2023 17:52:11 +0000 (19:52 +0200)]
Continued:
- renamed fba/federation/ -> fba/networks/ to make room for ...
- added fba.federation.py module which has generic functions for federation
- introduced fba/locking.py module
- renamed aqcuire_lock() -> aqcuire()
- added locking.release()
- introduced fba/helpers/dict.py and tidyup.py
- renamed tidyu_*() to tidyup.*()
- this all-in-all was an attempt to fix cyclic imports, still some are left