filters-maker/maker_domains.py

57 lines
2.2 KiB
Python
Raw Normal View History

2021-08-01 11:05:44 +00:00
import datetime
import pytz
UTC = pytz.utc
date = datetime.datetime.now(UTC)
def linecounter(incoming):
with open(incoming) as f:
2021-08-01 11:05:44 +00:00
for i, l in enumerate(f):
pass
return i + 1
2021-08-20 07:52:37 +00:00
def domainsbuilding(excluded ,incoming,Version):
2021-08-02 15:17:07 +00:00
ankstanop = linecounter(incoming)
2021-08-01 11:05:44 +00:00
with open(excluded ,'r') as f:
exclude = f.read().split()
2021-08-02 14:00:05 +00:00
with open(incoming ,'r') as f:
2021-08-01 11:05:44 +00:00
lines = f.read().splitlines() # read lines
2021-08-02 14:00:05 +00:00
with open(incoming ,'w') as f:
2021-08-01 11:05:44 +00:00
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:20:43 +00:00
f.write('# Rule Counter : ' + str(ankstanop) +' Rules\n')
2021-08-01 11:05:44 +00:00
f.write('# Format : Domains\n')
2021-08-20 07:52:37 +00:00
f.write('# Type : Blocklist\n')
f.write('# Version : ' + str(Version) +'\n')
2021-08-01 11:05:44 +00:00
f.write('# Licenses : MIT\n')
f.write('# Compiled Date : ' + str(date) +'\n\n')
for line in lines:
if line.strip() and not line in exclude and not line.startswith('#'):
f.write('\n'.join([line + '\n']))
2021-08-02 15:31:07 +00:00
elif line.startswith((';','$','@',' IN')):
2021-08-01 11:05:44 +00:00
f.write('\n'.join([line + '\n']))
2021-08-02 15:31:07 +00:00
elif not line.strip():
2021-08-01 11:05:44 +00:00
f.write('\n'.join([line + '\n']))
2021-08-20 07:52:37 +00:00
f.close()
2021-08-20 08:00:25 +00:00
def DMallowlist(incoming,Version):
2021-08-20 07:52:37 +00:00
ankstanop = linecounter(incoming)
with open(incoming ,'r') as f:
lines = f.read().splitlines() # read lines
2021-08-20 08:00:25 +00:00
with open(incoming ,'w') as f:
2021-08-20 07:52:37 +00:00
f.write('# Title : Minoplhy Personal Blocklist\n')
f.write('# Description : My Very Personal DNS Blocklist plus crawling from the source\n')
f.write('# Source : Resources/Source.txt\n')
f.write('# Rule Counter : ' + str(ankstanop) +' Rules\n')
f.write('# Format : Domains\n')
f.write('# Type : Allowlist\n')
f.write('# Version : ' + str(Version) +'\n')
f.write('# Licenses : MIT\n')
f.write('# Compiled Date : ' + str(date) +'\n\n')
for line in lines:
if line.strip() and not line.startswith(';'):
f.write('\n'.join([line + '\n']))
elif line.startswith((';','$','@',' IN')):
f.write('\n'.join([line + '\n']))
f.close()