aboutsummaryrefslogtreecommitdiffstats
path: root/tool/anti-cf_hosts_generator/generate.py
diff options
context:
space:
mode:
authorsmege1001 <smege1001@aaathats3as.com>2020-08-04 15:25:30 +0100
committersmege1001 <smege1001@aaathats3as.com>2020-08-04 15:25:30 +0100
commit97c940a207be67051b3b2a93ae72e8e2a329bf21 (patch)
treebe369e9116abab4254a3f77d73ea4d2629c38a16 /tool/anti-cf_hosts_generator/generate.py
parente54b4c0a2a0489477433e635355f180385550c57 (diff)
downloadcloudflare-tor-97c940a207be67051b3b2a93ae72e8e2a329bf21.tar.lz
cloudflare-tor-97c940a207be67051b3b2a93ae72e8e2a329bf21.tar.xz
cloudflare-tor-97c940a207be67051b3b2a93ae72e8e2a329bf21.zip
anti-cf hosts generator
Diffstat (limited to 'tool/anti-cf_hosts_generator/generate.py')
-rw-r--r--tool/anti-cf_hosts_generator/generate.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/tool/anti-cf_hosts_generator/generate.py b/tool/anti-cf_hosts_generator/generate.py
new file mode 100644
index 00000000..4a5ca42e
--- /dev/null
+++ b/tool/anti-cf_hosts_generator/generate.py
@@ -0,0 +1,47 @@
+import glob
+import getopt
+import os
+import sys
+
+print("Anti-CF hosts file generator 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("0.0.0.0 {}\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)