]> git.mxchange.org Git - fba.git/blobdiff - fba/boot.py
Continued:
[fba.git] / fba / boot.py
index aed135a814a310663faca5aaae803e6106ad1e30..7843a3070f622b02286a986bffb91e3b5747501a 100644 (file)
@@ -19,18 +19,18 @@ import logging
 import argparse
 
 from fba import commands
-from fba import fba
+from fba import database
 
 from fba.helpers import locking
 
-logging.basicConfig(level=logging.WARNING)
+logging.basicConfig(level=logging.INFO)
 logger = logging.getLogger(__name__)
 
 # Argument parser
 _PARSER = None
 
 def init_parser():
-    logger.debug("init_parser(): CALLED!")
+    logger.debug("CALLED!")
     global _PARSER
 
     logger.debug("Initializing parser ...")
@@ -38,6 +38,11 @@ def init_parser():
         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.",
     )
+
+    # Generic:
+    _PARSER.add_argument("--debug", action="store_const", dest="log_level", const=logging.DEBUG, help="Full debug output")
+
+    # Commands:
     subparser_command = _PARSER.add_subparsers(
         dest="command",
         title="Commands to execute",
@@ -76,6 +81,13 @@ def init_parser():
     )
     parser.set_defaults(command=commands.fetch_cs)
 
+    ### Fetch blocks from todon.eu wiki ###
+    parser = subparser_command.add_parser(
+        "fetch_todon_wiki",
+        help="Fetches blocks from todon.eu's wiki.",
+    )
+    parser.set_defaults(command=commands.fetch_todon_wiki)
+
     ### Fetch blocks from a FBA-specific RSS feed  ###
     parser = subparser_command.add_parser(
         "fetch_fba_rss",
@@ -115,12 +127,20 @@ def init_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 blocks from fediverse.observer ###
     parser = subparser_command.add_parser(
         "fetch_observer",
         help="Fetches blocks from fediverse.observer.",
     )
     parser.set_defaults(command=commands.fetch_observer)
+    parser.add_argument("--software", help="Name of software, e.g. 'lemmy'")
 
     ### Fetch instances from fedipact.online ###
     parser = subparser_command.add_parser(
@@ -129,18 +149,32 @@ def init_parser():
     )
     parser.set_defaults(command=commands.fetch_fedipact)
 
-    logger.debug("init_parser(): EXIT!")
+    ### Fetch from pixelfed.org's API ###
+    parser = subparser_command.add_parser(
+        "fetch_pixelfed_api",
+        help="Fetches domain names from pixelfed.org's API",
+    )
+    parser.set_defaults(command=commands.fetch_pixelfed_api)
+
+    logger.debug("EXIT!")
 
 def run_command():
-    logger.debug("run_command(): CALLED!")
+    logger.debug("CALLED!")
     args = _PARSER.parse_args()
-    logger.debug(f"args[{type(args)}]={args}")
+
+    if args.log_level is not None:
+        loggers = [logging.getLogger(name) for name in logging.root.manager.loggerDict]
+        for _logger in loggers:
+            _logger.setLevel(args.log_level)
+
+    logger.debug("args[%s]='%s'", type(args), args)
     status = args.command(args)
-    logger.debug("status={status} - EXIT!")
-    return status if isinstance(status, int) else 0
+
+    logger.debug("status=%d - EXIT!", status)
+    return status
 
 def shutdown():
     logger.debug("Closing database connection ...")
-    fba.connection.close()
+    database.connection.close()
     locking.release()
     logger.debug("Shutdown completed.")