diff options
author | smege1001 <smege1001@aaathats3as.com> | 2020-08-04 03:03:31 +0100 |
---|---|---|
committer | smege1001 <smege1001@aaathats3as.com> | 2020-08-04 03:03:31 +0100 |
commit | f6d4fe7e71d05296ba8bb4613853b61369a2fc31 (patch) | |
tree | c2a2ccd812bee22a8388ef0a8feec6f024326355 | |
parent | f92a7b34d570c6ee621335b5711ebcb1eb435225 (diff) | |
download | cloudflare-tor-f6d4fe7e71d05296ba8bb4613853b61369a2fc31.tar.lz cloudflare-tor-f6d4fe7e71d05296ba8bb4613853b61369a2fc31.tar.xz cloudflare-tor-f6d4fe7e71d05296ba8bb4613853b61369a2fc31.zip |
add anti-cf filter compiler
-rw-r--r-- | tool/anti-cf_filter_adblock/generate.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tool/anti-cf_filter_adblock/generate.py b/tool/anti-cf_filter_adblock/generate.py new file mode 100644 index 00000000..680e26fd --- /dev/null +++ b/tool/anti-cf_filter_adblock/generate.py @@ -0,0 +1,48 @@ +import glob +import getopt +import os +import sys + +print("Anti-CF filter compiler for Adblock Plus/uBlock Origin/etc. v1.0") +print("Licensed under CC0 1.0") +print("") +#functions +def progress(value, filename): + sys.stdout.write('\033[2K\033[1G') #wipe the line before printing + sys.stdout.write("Compiling rules [%s] %s" % ("{:,}".format(value), filename)) + sys.stdout.flush() + +opts, argv = getopt.getopt(sys.argv[1:], "o:d:") + +def process(outputf, inputd): + if not os.path.isdir(inputd): + print("Input not directory"); + sys.exit(1) + + with open(outputf, 'a') as outfile: + rulescom = 0 #counter for counting how much rules compiled + + files = glob.glob(os.path.join(inputd, "*.txt")) #filter out anything but txt files + + for f in files: + with open(f) as ruleso: + for line in ruleso: + outfile.write("||{}^$all\n".format(line.rstrip())) #this does the job + rulescom = rulescom + 1 + progress(rulescom, f) + + + +if len(sys.argv) < 5: #check if theres argv + print("Usage: generate.py -o <output file> -d <input directory>") + print("Example: generate.py -o filter.txt -d ../../cloudflare_users/domains/") + sys.exit(1) + +#argv parsing +for k, v in opts: + if k == '-o': + outputfile = v + if k == '-d': + inputdirectory = v + +process(outputfile, inputdirectory) |