disposable-email-domains/verify.py
2018-02-04 23:55:37 -05:00

38 lines
1.2 KiB
Python

#!/usr/bin/env python
"""Verify the integrity of the domain blacklist
"""
import io
import sys
from publicsuffixlist import PublicSuffixList
from requests import get
def main(arguments):
suffix_detected = False
psl = None
download_suffixes()
with open("public_suffix_list.dat", "r") as latest:
psl = PublicSuffixList(latest)
with io.open('disposable_email_blacklist.conf', 'r') as deb:
for i, line in enumerate(deb):
current_line = line.strip()
public_suffix = psl.publicsuffix(current_line)
if public_suffix == current_line:
print(f'The line number {i+1} contains just a public suffix: {current_line}')
suffix_detected = True
if suffix_detected:
print ('At least one valid public suffix found in the blacklist, please remove it. See https://publicsuffix.org for details on why this shouldn\'t be blacklisted.')
sys.exit(1)
def download_suffixes():
with open('public_suffix_list.dat', "wb") as file:
response = get('https://publicsuffix.org/list/public_suffix_list.dat')
file.write(response.content)
if __name__ == "__main__":
main(sys.argv)