logger.debug("Initializing parser ...")
_PARSER = argparse.ArgumentParser(
description="Fetches block reasons from the fediverse",
- epilog="Please note that some commands have optional arguments, you may want to try fba.py <command> --help to find them out.",
+ epilog="Please note that some commands have optional arguments, you may want to try fba.py <command> --help to find them out. Please DO NOT overdose requests that are not limited by themselves. Typically parameters like --domain, --software and --force are unlimited. \"Unlimited\" here means that there is no \"is recently accessed?\" limitation.",
)
# Generic:
- _PARSER.add_argument("--debug", action="store_const", dest="log_level", const=logging.DEBUG, help="Full debug output")
+ _PARSER.add_argument(
+ "--debug",
+ action="store_const",
+ dest="log_level",
+ const=logging.DEBUG,
+ help="Full debug output"
+ )
# Commands:
subparser_command = _PARSER.add_subparsers(
"check_instance",
help="Checks given instance if it exists and returns proper exit code"
)
- parser.add_argument("--domain", required=True, help="Instance name (aka. domain) to check")
parser.set_defaults(command=commands.check_instance)
+ parser.add_argument("--domain", required=True, help="Instance name (aka. domain) to check")
### Fetch from bka.li ###
parser = subparser_command.add_parser(
)
parser.set_defaults(command=commands.fetch_bkali)
+ ### Recheck instance's obfuscated peers ###
+ parser = subparser_command.add_parser(
+ "recheck_obfuscation",
+ help="Checks all instance's obfuscated peers if they can be de-obfuscated now.",
+ )
+ parser.set_defaults(command=commands.recheck_obfuscation)
+ parser.add_argument("--domain", help="Instance name (aka. domain)")
+ parser.add_argument("--software", help="Name of software, e.g. 'lemmy'")
+ parser.add_argument("--force", action="store_true", help="Include also already existing instances, otherwise only new are checked")
+
### Fetch blocks from registered instances or given ###
parser = subparser_command.add_parser(
"fetch_blocks",
help="Fetches blocks from registered instances (run command fetch_instances first!).",
)
+ parser.set_defaults(command=commands.fetch_blocks)
parser.add_argument("--domain", help="Instance name (aka. domain)")
parser.add_argument("--software", help="Name of software, e.g. 'lemmy'")
- parser.set_defaults(command=commands.fetch_blocks)
+ parser.add_argument("--force", action="store_true", help="Forces update of data, no matter what.")
### Fetch blocks from chaos.social ###
parser = subparser_command.add_parser(
"fetch_fba_rss",
help="Fetches domains from a FBA-specific RSS feed.",
)
- parser.add_argument("--feed", required=True, help="RSS feed to fetch domains from (e.g. https://fba.ryoma.agency/rss?domain=foo.bar).")
parser.set_defaults(command=commands.fetch_fba_rss)
+ parser.add_argument("--feed", required=True, help="RSS feed to fetch domains from (e.g. https://fba.ryoma.agency/rss?domain=foo.bar).")
### Fetch blocks from FBA's bot account ###
parser = subparser_command.add_parser(
"fetch_fbabot_atom",
- help="Fetches ATOM feed with domains from FBA's bot account. You may wish to re-run this command several times (at least 3 with big instances) to have a decent amount of valid instances.",
+ help="Fetches ATOM feed with domains from FBA's bot account.",
)
parser.set_defaults(command=commands.fetch_fbabot_atom)
+ parser.add_argument("--feed", required=True, help="RSS feed to fetch domains from (e.g. https://fba.ryoma.agency/rss?domain=foo.bar).")
### Fetch blocks from oliphant's GIT repository ###
parser = subparser_command.add_parser(
"fetch_oliphant",
help="Fetches CSV files (block recommendations) for more possible instances to disover",
)
- parser.add_argument("--domain", help="Instance name (aka. domain) to check")
parser.set_defaults(command=commands.fetch_oliphant)
+ parser.add_argument("--domain", help="Instance name (aka. domain) to check")
+
+ ### Fetch blocks from other CSV files
+ parser = subparser_command.add_parser(
+ "fetch_csv",
+ help="Fetches CSV files (block recommendations) for more possible instances to disover",
+ )
+ parser.set_defaults(command=commands.fetch_csv)
+ parser.add_argument("--domain", help="Instance name (aka. domain) to check")
### Fetch instances from given initial instance ###
parser = subparser_command.add_parser(
"fetch_instances",
- help="Fetches instances (aka. \"domains\") from an initial instance.",
+ help="Fetches instances (aka. \"domains\") from an initial instance. You may want to re-run this command several times (at least 3 with big instances) to have a decent amount of valid instances.",
)
+ parser.set_defaults(command=commands.fetch_instances)
parser.add_argument("--domain", required=True, help="Instance name (aka. domain) to fetch further instances from. Start with a large instance, e.g. mastodon.social .")
parser.add_argument("--single", action="store_true", help="Only fetch given instance.")
- parser.set_defaults(command=commands.fetch_instances)
### Fetch blocks from static text file(s) ###
parser = subparser_command.add_parser(
)
parser.set_defaults(command=commands.fetch_txt)
+ ### Fetch blocks from joinfediverse.wiki ###
+ #parser = subparser_command.add_parser(
+ # "fetch_joinfediverse",
+ # help="Fetches FediBlock page from joinfediverse.wiki",
+ #)
+ #parser.set_defaults(command=commands.fetch_joinfediverse)
+
+ ### Fetch instances JSON from instances.joinmobilizon.org
+ parser = subparser_command.add_parser(
+ "fetch_joinmobilizon",
+ help="Fetches instances from joinmobilizon",
+ )
+ parser.set_defaults(command=commands.fetch_joinmobilizon)
+
+ ### Fetch blocks from misskey.page ###
+ parser = subparser_command.add_parser(
+ "fetch_joinmisskey",
+ help="Fetches instances.json from misskey.page",
+ )
+ parser.set_defaults(command=commands.fetch_joinmisskey)
+
### Fetch blocks from fediverse.observer ###
parser = subparser_command.add_parser(
"fetch_observer",
)
parser.set_defaults(command=commands.fetch_pixelfed_api)
+ ### Check nodeinfo ###
+ parser = subparser_command.add_parser(
+ "check_nodeinfo",
+ help="Checks if domain is part of nodeinfo.",
+ )
+ parser.set_defaults(command=commands.check_nodeinfo)
+
+ ### Fetch CSV from fedilist.com ###
+ parser = subparser_command.add_parser(
+ "fetch_fedilist",
+ help="Fetches CSV from fedilist.com",
+ )
+ parser.set_defaults(command=commands.fetch_fedilist)
+ parser.add_argument("--software", help="Name of software, e.g. 'lemmy'")
+ parser.add_argument("--force", action="store_true", help="Include also already existing instances, otherwise only new are checked")
+
+ ### Update nodeinfo ###
+ parser = subparser_command.add_parser(
+ "update_nodeinfo",
+ help="Updates nodeinfo for all instances",
+ )
+ parser.set_defaults(command=commands.update_nodeinfo)
+ parser.add_argument("--domain", help="Instance name (aka. domain)")
+ parser.add_argument("--software", help="Name of software, e.g. 'lemmy'")
+ parser.add_argument("--mode", help="Name of detection mode, e.g. 'auto_discovery'")
+ parser.add_argument("--force", action="store_true", help="Forces update of data, no matter what.")
+ parser.add_argument("--no-software", action="store_true", help="Checks only entries with no software type detected.")
+ parser.add_argument("--no-auto", action="store_true", help="Checks only entries with other than AUTO_DISCOVERY as detection mode.")
+
+ ### Fetch instances from instances.social ###
+ parser = subparser_command.add_parser(
+ "fetch_instances_social",
+ help="Fetch instances from instances.social, you need an API key to access the API. Please consider donating to them when you want to more frequent use their API!",
+ )
+ parser.set_defaults(command=commands.fetch_instances_social)
+
+ ### Convert international domain names to punycode domains ###
+ parser = subparser_command.add_parser(
+ "convert_idna",
+ help="Convertes UTF-8 encoded international domain names into punycode (IDNA) domain names.",
+ )
+ parser.set_defaults(command=commands.convert_idna)
+
+ ### Fetch instances from ActivityPub relays ###
+ parser = subparser_command.add_parser(
+ "fetch_relays",
+ help="Fetches instances from ActivityPub relays",
+ )
+ parser.set_defaults(command=commands.fetch_relays)
+ parser.add_argument("--domain", help="Instance name (aka. 'relay')")
+ parser.add_argument("--software", help="Name of software, e.g. 'lemmy'")
+ parser.add_argument("--force", action="store_true", help="Forces update of data, no matter what.")
+
+ ### Remove invalid domains ###
+ parser = subparser_command.add_parser(
+ "remove_invalid",
+ help="Removes invalid domains.",
+ )
+ parser.set_defaults(command=commands.remove_invalid)
+
logger.debug("EXIT!")
def run_command():