1
0
mirror of https://github.com/minoplhy/filters-maker.git synced 2024-12-23 02:28:13 +00:00
filters-maker/maker_rpz.py

35 lines
1.3 KiB
Python
Raw Normal View History

2021-07-28 14:03:52 +00:00
import datetime
import pytz
UTC = pytz.utc
date = datetime.datetime.now(UTC)
2021-08-02 14:18:58 +00:00
def linecounter(incoming):
with open(incoming) as f:
2021-07-28 14:03:52 +00:00
for i, l in enumerate(f):
pass
return i + 1
2021-08-02 14:18:58 +00:00
def RPZbuilding(excluded,incoming,output):
2021-08-02 15:17:07 +00:00
ankstanop = linecounter(incoming)
2021-07-28 14:03:52 +00:00
with open(excluded ,'r') as f:
exclude = f.read().split()
2021-08-02 14:18:58 +00:00
with open(incoming ,'r') as f:
2021-07-28 14:03:52 +00:00
lines = f.read().splitlines() # read lines
with open(output ,'w') as f:
f.write('; Title : Minoplhy Personal Blocklist\n')
f.write('; Description : My Very Personal DNS Blocklist plus crawling from the source\n')
2021-08-01 11:07:39 +00:00
f.write('; Source : Resources/Source.txt\n')
2021-08-02 15:17:07 +00:00
f.write('; Rule Counter : ' + str(ankstanop) +' Rules\n')
2021-07-28 14:03:52 +00:00
f.write('; Format : RPZ\n')
f.write('; Licenses : MIT\n')
f.write('; Compiled Date : ' + str(date) +'\n\n')
f.write('$TTL 12h\n')
f.write('@ IN SOA localhost. root.localhost. (1 6h 1h 1w 2h)\n')
f.write(' IN NS localhost.\n\n')
for line in lines:
if line.strip() and not line in exclude and not line.startswith(';'):
2021-08-12 04:13:21 +00:00
f.write('\n'.join([line + ' CNAME .\n'])) and f.write('\n'.join(['*.'+line+' CNAME .\n']))
2021-08-02 15:30:58 +00:00
elif line.startswith((';','$','@',' IN')):
2021-07-28 14:03:52 +00:00
f.write('\n'.join([line + '\n']))
f.close()