mirror of
https://github.com/minoplhy/filters-maker.git
synced 2024-12-22 18:18:13 +00:00
Support for Dnamasq and Unbound
This commit is contained in:
parent
73e1700fb3
commit
c9f6de03df
57
maker_dnsmasq.py
Normal file
57
maker_dnsmasq.py
Normal file
@ -0,0 +1,57 @@
|
||||
import datetime
|
||||
import pytz
|
||||
|
||||
UTC = pytz.utc
|
||||
date = datetime.datetime.now(UTC)
|
||||
|
||||
def linecounter(incoming):
|
||||
with open(incoming) as f:
|
||||
for i, l in enumerate(f):
|
||||
pass
|
||||
return i + 1
|
||||
|
||||
def domainsbuilding(excluded ,incoming,Version):
|
||||
ankstanop = linecounter(incoming)
|
||||
with open(excluded ,'r') as f:
|
||||
exclude = f.read().split()
|
||||
with open(incoming ,'r') as f:
|
||||
lines = f.read().splitlines() # read lines
|
||||
with open(incoming ,'w') as f:
|
||||
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 : Blocklist\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 in exclude and not line.startswith('#'):
|
||||
f.write('\n'.join([line + '\n']))
|
||||
elif line.startswith((';','$','@',' IN')):
|
||||
f.write('\n'.join([line + '\n']))
|
||||
elif not line.strip():
|
||||
f.write('\n'.join([line + '\n']))
|
||||
f.close()
|
||||
|
||||
def DNQallowlist(incoming, output,Version):
|
||||
ankstanop = linecounter(incoming)
|
||||
with open(incoming ,'r') as f:
|
||||
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')
|
||||
f.write('# Source : Resources/Source.txt\n')
|
||||
f.write('# Rule Counter : ' + str(ankstanop) +' Rules\n')
|
||||
f.write('# Format : Dnsmasq\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(['server=/' + line + '/\n']))
|
||||
elif line.startswith((';','$','@',' IN')):
|
||||
f.write('\n'.join([line + '\n']))
|
||||
f.close()
|
57
maker_unbound.py
Normal file
57
maker_unbound.py
Normal file
@ -0,0 +1,57 @@
|
||||
import datetime
|
||||
import pytz
|
||||
|
||||
UTC = pytz.utc
|
||||
date = datetime.datetime.now(UTC)
|
||||
|
||||
def linecounter(incoming):
|
||||
with open(incoming) as f:
|
||||
for i, l in enumerate(f):
|
||||
pass
|
||||
return i + 1
|
||||
|
||||
def UNBbuilding(excluded ,incoming,Version):
|
||||
ankstanop = linecounter(incoming)
|
||||
with open(excluded ,'r') as f:
|
||||
exclude = f.read().split()
|
||||
with open(incoming ,'r') as f:
|
||||
lines = f.read().splitlines() # read lines
|
||||
with open(incoming ,'w') as f:
|
||||
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 : Blocklist\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 in exclude and not line.startswith('#'):
|
||||
f.write('\n'.join([line + '\n']))
|
||||
elif line.startswith((';','$','@',' IN')):
|
||||
f.write('\n'.join([line + '\n']))
|
||||
elif not line.strip():
|
||||
f.write('\n'.join([line + '\n']))
|
||||
f.close()
|
||||
|
||||
def DMallowlist(incoming, output,Version):
|
||||
ankstanop = linecounter(incoming)
|
||||
with open(incoming ,'r') as f:
|
||||
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')
|
||||
f.write('# Source : Resources/Source.txt\n')
|
||||
f.write('# Rule Counter : ' + str(ankstanop) +' Rules\n')
|
||||
f.write('# Format : Unbound\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(['local-zone: "' + line + '" always_refuse\n']))
|
||||
elif line.startswith((';','$','@',' IN')):
|
||||
f.write('\n'.join([line + '\n']))
|
||||
f.close()
|
Loading…
Reference in New Issue
Block a user