add anti-cf filter compiler
This commit is contained in:
parent
f92a7b34d5
commit
f6d4fe7e71
|
@ -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)
|
Loading…
Reference in New Issue