From 759cfd704c545f572e52305f4e9b1116426696ee Mon Sep 17 00:00:00 2001 From: Wiktor <> Date: Sun, 25 May 2025 21:49:19 +0200 Subject: [PATCH] Add ublacklist converter format --- src/converter.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/converter.py b/src/converter.py index e10fb0c..61a1a72 100644 --- a/src/converter.py +++ b/src/converter.py @@ -76,6 +76,8 @@ def convert(data: dict, last_modified: datetime, target_format: str) -> str: match target_format: case "adguard": return adguard_conversion(last_modified, data) + case "ublacklist": + return ublacklist_conversion(last_modified, data) case _: raise UnsupportedTargetFormatError @@ -97,6 +99,23 @@ def adguard_conversion(last_modified: datetime, data: dict) -> list[str]: return "\n".join(output) +def ublacklist_conversion(last_modified: datetime, data: dict) -> list[str]: + header_lines: list[str] = [ + f"# Blocking list automatically generated at {last_modified.strftime('%Y-%m-%d %H:%M:%S %Z%z')}", + "# Created with ❤️ by internet-czas-dzialac.pl", + ] + + output: list[str] = list(header_lines) + + for entry in data["domains"]: + fqdn = entry["fqdn"] + if entry.get("exclude", False): + continue + output.append(f"*://*.{fqdn}/*") + + return "\n".join(output) + + def dump_output(data: str, output_file: str) -> None: try: directory = os.path.dirname(output_file)