mirror of
				https://codeberg.org/crimeflare/cloudflare-tor
				synced 2025-10-25 22:56:44 +02:00 
			
		
		
		
	add anti-cf filter compiler
This commit is contained in:
		
							parent
							
								
									f92a7b34d5
								
							
						
					
					
						commit
						f6d4fe7e71
					
				
					 1 changed files with 48 additions and 0 deletions
				
			
		
							
								
								
									
										48
									
								
								tool/anti-cf_filter_adblock/generate.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								tool/anti-cf_filter_adblock/generate.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -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…
	
	Add table
		
		Reference in a new issue