Add ublacklist converter format

This commit is contained in:
Wiktor 2025-05-25 21:49:19 +02:00
parent cd39080c01
commit 759cfd704c

View File

@ -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)