From: gap579137 Date: Sun, 18 May 2025 02:17:28 +0000 (-0500) Subject: migrate X-Git-Tag: aggregated-20250518~5 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=32b2826f175bf69eed98bc54bcebecd6a2ab32d6;p=thirdparty%2Fblocklistproject%2Flists.git migrate --- diff --git a/.gitignore b/.gitignore index 999de30..b1116a5 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,3 @@ #Internal Script /Internal_Scripts -/scripts diff --git a/scripts/aggregate.py b/scripts/aggregate.py new file mode 100755 index 0000000..b36b56a --- /dev/null +++ b/scripts/aggregate.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +import os +import glob + +def load_domains(path): + domains = set() + with open(path, encoding='utf-8') as f: + for line in f: + line = line.split('#',1)[0].strip() + if not line or line.startswith('!') or line.startswith('['): + continue + domains.add(line) + return domains + +def write_hosts(domains, out_path): + with open(out_path, 'w', encoding='utf-8') as f: + f.write('# Generated hosts file\n') + for d in sorted(domains): + f.write(f'0.0.0.0 {d}\n') + +def write_dnsmasq(domains, out_path): + with open(out_path, 'w', encoding='utf-8') as f: + f.write('# Generated dnsmasq config\n') + for d in sorted(domains): + f.write(f'address=/{d}/0.0.0.0\n') + +def write_adblock(domains, out_path): + with open(out_path, 'w', encoding='utf-8') as f: + f.write('! Generated Adblock rules\n') + for d in sorted(domains): + f.write(f'||{d}^$important\n') + +if __name__ == '__main__': + base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) + lists_dir = os.path.join(base_dir, 'Lists') + out_dir = os.path.join(base_dir, 'releases') + os.makedirs(out_dir, exist_ok=True) + + domains = set() + for txt in glob.glob(os.path.join(lists_dir, '*.txt')): + domains |= load_domains(txt) + + write_hosts(domains, os.path.join(out_dir, 'aggregated-hosts.txt')) + write_dnsmasq(domains, os.path.join(out_dir, 'aggregated-dnsmasq.conf')) + write_adblock(domains, os.path.join(out_dir, 'aggregated-adblock.txt')) + + print(f'➜ Wrote {len(domains)} unique domains into {out_dir}')