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)