]> git.mxchange.org Git - fba.git/commitdiff
Continued:
authorRoland Häder <roland@mxchange.org>
Fri, 10 Jan 2025 07:36:37 +0000 (08:36 +0100)
committerRoland Häder <roland@mxchange.org>
Fri, 10 Jan 2025 07:36:37 +0000 (08:36 +0100)
- moved alias_block_level() to new fba/helpers/blocks.py

fba/commands.py
fba/helpers/__init__.py
fba/helpers/blocks.py [new file with mode: 0644]
fba/helpers/processing.py
fba/http/federation.py
fba/models/blocks.py
fba/models/error_log.py
fba/models/obfuscation.py
fba/models/sources.py
fba/networks/mastodon.py
fba/networks/pleroma.py

index f8dcd747b5ea7c35138d1f462f3e6c1fd3ddb634..1f1b7e4b193d8fa7695cb3689ab7b8afd5d62808 100644 (file)
@@ -35,6 +35,7 @@ from fba import utils
 
 from fba.helpers import blacklist
 from fba.helpers import blocklists
+from fba.helpers import blocks as blocks_helper
 from fba.helpers import config
 from fba.helpers import cookies
 from fba.helpers import dicts as dict_helper
@@ -452,8 +453,8 @@ def fetch_blocks(args: argparse.Namespace) -> int:
                 logger.info("Fetching new instance block[blocked]'%s' for blocker='%s' ...", block["blocked"], blocker)
                 federation.fetch_instances(block["blocked"], blocker, None, inspect.currentframe().f_code.co_name)
 
-            logger.debug("Invoking blocks.alias_block_level('%s') ... - BEFORE!", block["block_level"])
-            block["block_level"] = blocks.alias_block_level(block["block_level"])
+            logger.debug("Invoking blocks_helper.alias_block_level('%s') ... - BEFORE!", block["block_level"])
+            block["block_level"] = blocks_helper.alias_block_level(block["block_level"])
             logger.debug("block[block_level]='%s' - AFTER!", block["block_level"])
 
             if processing.block(blocker, block["blocked"], block["reason"], block["block_level"]) and block["block_level"] in ["rejected", "suspended"] and _bot_enabled:
@@ -1444,7 +1445,7 @@ def recheck_obfuscation(args: argparse.Namespace) -> int:
                     obfuscation.delete(block["blocked"])
 
                 logger.debug("block[block_level]='%s' - BEFORE!", block["block_level"])
-                block["block_level"] = blocks.alias_block_level(block["block_level"])
+                block["block_level"] = blocks_helper.alias_block_level(block["block_level"])
                 logger.debug("block[block_level]='%s' - AFTER!", block["block_level"])
 
                 if processing.block(row["domain"], blocked, block["reason"], block["block_level"]) and block["block_level"] in ["suspended", "rejected"] and _bot_enabled:
index efcd204fd7f165438498e445a1b340a82ea9eb85..687ff0fc1a52325b981d5db7e7794e62d8e89f75 100644 (file)
@@ -16,6 +16,7 @@
 __all__ = [
     'blacklist',
     'blocklists',
+    'blocks',
     'cache',
     'config',
     'cookies',
diff --git a/fba/helpers/blocks.py b/fba/helpers/blocks.py
new file mode 100644 (file)
index 0000000..d9e610c
--- /dev/null
@@ -0,0 +1,50 @@
+# Fedi API Block - An aggregator for fetching blocking data from fediverse nodes
+# Copyright (C) 2023 Free Software Foundation
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published
+# by the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+import logging
+
+from functools import lru_cache
+
+logging.basicConfig(level=logging.INFO)
+logger = logging.getLogger(__name__)
+#logger.setLevel(logging.DEBUG)
+
+@lru_cache
+def alias_block_level(block_level: str) -> str:
+    logger.debug("block_level='%s' - CALLED!", block_level)
+
+    if not isinstance(block_level, str):
+        raise ValueError(f"Parameter block_level[]='{type(block_level)}' is not of type 'str'")
+    elif block_level in ["accept", "accepted"]:
+        raise ValueError(f"Parameter block_level='{block_level}' is 'accept(ed)' but function was invoked")
+    elif block_level == "silence":
+        logger.debug("Block level 'silence' has been changed to 'silenced'")
+        block_level = "silenced"
+    elif block_level == "suspend":
+        logger.debug("Block level 'suspend' has been changed to 'suspended'")
+        block_level = "suspended"
+    elif block_level == "reject":
+        logger.debug("Block level 'reject' has been changed to 'rejected'")
+        block_level = "rejected"
+    elif block_level == "nsfw":
+        logger.debug("Block level 'nsfw' has been changed to 'media_nsfw'")
+        block_level = "media_nsfw"
+    elif block_level == "quarantined_instances":
+        logger.debug("Block level 'quarantined_instances' has been changed to 'quarantined'")
+        block_level = "quarantined"
+
+    logger.debug("block_level='%s' - EXIT!", block_level)
+    return block_level
index 463978b7e229ac87615a31101c19d33fd7bd8a76..b1f9a8e912d3fbffc82ebe98b2417aeaaab5c14f 100644 (file)
@@ -23,6 +23,7 @@ from fba import utils
 
 from fba.helpers import blacklist
 from fba.helpers import blocklists
+from fba.helpers import blocks as blocks_helper
 from fba.helpers import config
 from fba.helpers import domain as domain_helper
 from fba.helpers import tidyup
@@ -182,9 +183,9 @@ def csv_block(blocker: str, url: str, command: str) -> None:
             continue
 
         if "#severity" in row:
-            severity = blocks.alias_block_level(row["#severity"])
+            severity = blocks_helper.alias_block_level(row["#severity"])
         elif "severity" in row:
-            severity = blocks.alias_block_level(row["severity"])
+            severity = blocks_helper.alias_block_level(row["severity"])
         else:
             logger.debug("row='%s' does not contain severity column, setting 'reject'", row)
             severity = "rejected"
index c24ca632ef41e03826bd6099e4257fe7d062bcc6..dad20a80cb86e50d7b50f0b4011699392cc2645e 100644 (file)
@@ -22,6 +22,7 @@ import requests
 import validators
 
 from fba.helpers import blacklist
+from fba.helpers import blocks as blocks_helper
 from fba.helpers import config
 from fba.helpers import cookies
 from fba.helpers import domain as domain_helper
@@ -667,7 +668,7 @@ def fetch_blocks(domain: str) -> list:
                     "blocked"    : block["domain"],
                     "digest"     : block["digest"] if "digest" in block else None,
                     "reason"     : reason,
-                    "block_level": blocks.alias_block_level(block["severity"]),
+                    "block_level": blocks_helper.alias_block_level(block["severity"]),
                 })
         else:
             logger.debug("domain='%s' has no block list", domain)
index 2ad3fd64f222dc82d3f530c63ff0e94c9f4fa81b..0728e599bcf7a5bc5bf002d2fb0f5ee1ac4e4866 100644 (file)
@@ -26,6 +26,7 @@ from fba.helpers import tidyup
 
 logging.basicConfig(level=logging.INFO)
 logger = logging.getLogger(__name__)
+#logger.setLevel(logging.DEBUG)
 
 def get_reason(blocker: str, blocked: str, block_level: str) -> str:
     logger.debug("blocker='%s',blocked='%s',block_level='%s' - CALLED!", blocker, blocked, block_level)
@@ -250,32 +251,6 @@ def translate_idnas(rows: list, column: str) -> None:
 
     logger.debug("EXIT!")
 
-def alias_block_level(block_level: str) -> str:
-    logger.debug("block_level='%s' - CALLED!", block_level)
-
-    if not isinstance(block_level, str):
-        raise ValueError(f"Parameter block_level[]='{type(block_level)}' is not of type 'str'")
-    elif block_level in ["accept", "accepted"]:
-        raise ValueError(f"Parameter block_level='{block_level}' is 'accept(ed)' but function was invoked")
-    elif block_level == "silence":
-        logger.debug("Block level 'silence' has been changed to 'silenced'")
-        block_level = "silenced"
-    elif block_level == "suspend":
-        logger.debug("Block level 'suspend' has been changed to 'suspended'")
-        block_level = "suspended"
-    elif block_level == "reject":
-        logger.debug("Block level 'reject' has been changed to 'rejected'")
-        block_level = "rejected"
-    elif block_level == "nsfw":
-        logger.debug("Block level 'nsfw' has been changed to 'media_nsfw'")
-        block_level = "media_nsfw"
-    elif block_level == "quarantined_instances":
-        logger.debug("Block level 'quarantined_instances' has been changed to 'quarantined'")
-        block_level = "quarantined"
-
-    logger.debug("block_level='%s' - EXIT!", block_level)
-    return block_level
-
 def delete(domain: str) -> None:
     logger.debug("domain='%s' - CALLED!", domain)
     domain_helper.raise_on(domain)
index 2e991617078245305901044a11511301b952b315..f002b1b5281ae75ce76ddd0191df7ea88e5cf75d 100644 (file)
@@ -25,6 +25,7 @@ from fba.helpers import domain as domain_helper
 
 logging.basicConfig(level=logging.INFO)
 logger = logging.getLogger(__name__)
+#logger.setLevel(logging.DEBUG)
 
 def add(domain: str, error: dict) -> None:
     logger.debug("domain='%s',error[]='%s' - CALLED!", domain, type(error))
index 1db08159a8fbbe4d2e3a761f15a57dec70665d8a..c8d9e294b827ea353bc2e61e1ab305010e731c39 100644 (file)
@@ -22,6 +22,7 @@ from fba import database
 
 logging.basicConfig(level=logging.INFO)
 logger = logging.getLogger(__name__)
+#logger.setLevel(logging.DEBUG)
 
 def is_added(pattern: str) -> bool:
     logger.debug("pattern='%s' - CALLED!", pattern)
index 83a1b3c40e2089218d255ec0a4cf802e135fe517..fa635f3b2a84d6dd54c5ea3da8f5906d5a828363 100644 (file)
@@ -25,6 +25,7 @@ from fba.helpers import domain as domain_helper
 
 logging.basicConfig(level=logging.INFO)
 logger = logging.getLogger(__name__)
+#logger.setLevel(logging.DEBUG)
 
 def fetch (source_domain: str) -> dict:
     logger.debug("source_domain='%s' - CALLED!", source_domain)
index dddc7dd935c08cd73fcd10a7e4479887f6c1f1a8..df4ba927ce4402d94eaf11c8bcb6f8d7875ac91b 100644 (file)
@@ -20,6 +20,7 @@ import validators
 import bs4
 
 from fba.helpers import blacklist
+from fba.helpers import blocks as blocks_helper
 from fba.helpers import config
 from fba.helpers import domain as domain_helper
 from fba.helpers import tidyup
@@ -202,7 +203,7 @@ def fetch_blocks(domain: str) -> list:
                     "blocked"    : block["domain"],
                     "digest"     : block["digest"] if "digest" in block else None,
                     "reason"     : reason,
-                    "block_level": blocks.alias_block_level(block_level),
+                    "block_level": blocks_helper.alias_block_level(block_level),
                 })
     else:
         logger.debug("domain='%s' has no block list", domain)
index 3938e53e16906071caa2930ee8affa3c7969a91b..024a4f5f5016d25788fb5da88ff6f16a91baf7bf 100644 (file)
@@ -22,6 +22,7 @@ import validators
 from fba import database
 
 from fba.helpers import blacklist
+from fba.helpers import blocks as blocks_helper
 from fba.helpers import config
 from fba.helpers import domain as domain_helper
 from fba.helpers import tidyup
@@ -116,7 +117,7 @@ def fetch_blocks(domain: str) -> list:
                 logger.debug("domain='%s' skipping block_level='accept'", domain)
                 continue
 
-            block_level = blocks.alias_block_level(block_level)
+            block_level = blocks_helper.alias_block_level(block_level)
 
             logger.debug("Checking %d entries from domain='%s',block_level='%s' ...", len(blocklist), domain, block_level)
             for blocked in blocklist:
@@ -198,7 +199,7 @@ def fetch_blocks(domain: str) -> list:
                 logger.debug("domain='%s': Skipping block_level='%s' ...", domain, block_level)
                 continue
 
-            block_level = blocks.alias_block_level(block_level)
+            block_level = blocks_helper.alias_block_level(block_level)
 
             logger.debug("Checking %d entries from domain='%s',block_level='%s' ...", len(info.items()), domain, block_level)
             for blocked, reason in info.items():