def test_duplicated_domain_is_whitelisted(self): domains = { 'example.com', 'ad.example.comad.example.com', 'ad.example.com' } filtered = hosts_tools.filter_whitelist(domains, set()) assert filtered == {'example.com', 'ad.example.com'}
def test_domain_is_whitelisted(self): domains = { 'b.com', 'b.b.com', 'ad.example.com' } filtered = hosts_tools.filter_whitelist(domains, self.TEST_WHITELIST) assert filtered == {'b.com', 'ad.example.com'}
def main(): args = parse_args() main_domains = hosts_tools.load_domains_from_list(args.list + '.txt') expanded_domains = hosts_tools.load_domains_from_list(args.list + '-extended.txt') whitelist = hosts_tools.load_domains_from_whitelist(args.list + '-whitelist.txt') main_domains_len_start = len(main_domains) expanded_domains_len_start = len(expanded_domains) with open('secrets.json') as f: data = json.load(f) api_key = data['virustotal_api_key'] if args.update: found = crt_update(main_domains, args.verbose) expanded_domains.update(found) if args.virustotal: found = virustotal_update(main_domains, api_key, args.verbose) expanded_domains.update(found) main_domains.update(args.domains) found = crt_update(args.domains, args.verbose) expanded_domains.update(found) found = virustotal_update(args.domains, api_key, args.verbose) expanded_domains.update(found) expanded_domains = hosts_tools.filter_whitelist(expanded_domains, whitelist) main_domains_len_end = len(main_domains) main_domains_len_diff = main_domains_len_end - main_domains_len_start expanded_domains_len_end = len(expanded_domains) expanded_domains_len_diff = expanded_domains_len_end - expanded_domains_len_start print('Base list: %s, expanded by: %s' % (main_domains_len_end, main_domains_len_diff)) print('Extended List: %s, expanded by %s' % (expanded_domains_len_end, expanded_domains_len_diff)) print('List Difference: %s' % (expanded_domains_len_end - main_domains_len_end)) if not args.dryrun: hosts_tools.write_domain_list(args.list + '.txt', main_domains) hosts_tools.write_domain_list(args.list + '-extended.txt', expanded_domains)