From 6972bb84a2c0e52eeae53434ea9873fd5cba3d5f Mon Sep 17 00:00:00 2001 From: itdoginfo <koalav42@gmail.com> Date: Wed, 13 Sep 2023 22:41:04 +0300 Subject: [PATCH] added clashx format --- convert.py | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/convert.py b/convert.py index f792e9e..df0abbe 100755 --- a/convert.py +++ b/convert.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3.8 +#!/usr/bin/python3.10 import tldextract import urllib.request @@ -47,6 +47,23 @@ def dnsmasq(src, out, remove={'google.com'}): for name in domains: file.write(f'ipset=/{name}/vpn_domains\n') +def clashx(src, out, remove={'google.com'}): + domains = set() + + for f in src: + with open(f) as infile: + for line in infile: + if tldextract.extract(line).suffix: + if re.search(r'[^а-я\-]', tldextract.extract(line).domain): + domains.add(tldextract.extract(line.rstrip()).registered_domain) + + domains = domains - remove + domains = sorted(domains) + + with open(f'{out}-clashx.lst', 'w') as file: + for name in domains: + file.write(f'DOMAIN-SUFFIX,{name}\n') + if __name__ == '__main__': # Russia inside Path("Russia").mkdir(parents=True, exist_ok=True) @@ -57,12 +74,14 @@ if __name__ == '__main__': raw(inside_lists, rusDomainsInsideOut) dnsmasq(inside_lists, rusDomainsInsideOut, removeDomains) + clashx(inside_lists, rusDomainsInsideOut, removeDomains) # Russia outside ouside_lists = [rusDomainsOutsideSrc] raw(ouside_lists, rusDomainsOutsideOut) dnsmasq(ouside_lists, rusDomainsOutsideOut) + clashx(ouside_lists, rusDomainsOutsideOut) # Ukraine Path("Ukraine").mkdir(parents=True, exist_ok=True) @@ -70,4 +89,5 @@ if __name__ == '__main__': urllib.request.urlretrieve("https://uablacklist.net/domains.txt", "uablacklist-domains.lst") ua_lists = ['uablacklist-domains.lst'] - dnsmasq(ua_lists, uaDomainsOut) \ No newline at end of file + dnsmasq(ua_lists, uaDomainsOut) + clashx(ua_lists, uaDomainsOut) \ No newline at end of file