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
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:
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:
__all__ = [
'blacklist',
'blocklists',
+ 'blocks',
'cache',
'config',
'cookies',
--- /dev/null
+# 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
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
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"
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
"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)
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)
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)
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))
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)
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)
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
"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)
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
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:
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():