Blame libsoup/tld-parser.py
|
Packit Service |
ca3877 |
#!/usr/bin/env python3
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
# Generate tld rules
|
|
Packit Service |
ca3877 |
# Copyright (C) 2012 Red Hat, Inc.
|
|
Packit Service |
ca3877 |
# Based on tld-parser.c Copyright (C) 2012 Igalia S.L.
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
import sys
|
|
Packit Service |
ca3877 |
import codecs
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
SOUP_TLD_RULE_NORMAL = 0
|
|
Packit Service |
ca3877 |
SOUP_TLD_RULE_MATCH_ALL = 1 << 0
|
|
Packit Service |
ca3877 |
SOUP_TLD_RULE_EXCEPTION = 1 << 1
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
tlds_file = codecs.open(sys.argv[1], encoding='utf-8')
|
|
Packit Service |
ca3877 |
inc_file = codecs.open(sys.argv[2], 'w', encoding='utf-8')
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
first = True
|
|
Packit Service |
ca3877 |
for rule in tlds_file:
|
|
Packit Service |
ca3877 |
rule = rule.strip()
|
|
Packit Service |
ca3877 |
if rule == '' or rule.startswith('//'):
|
|
Packit Service |
ca3877 |
continue
|
|
Packit Service |
ca3877 |
domain = rule
|
|
Packit Service |
ca3877 |
flags = 0
|
|
Packit Service |
ca3877 |
if rule[0] == '!':
|
|
Packit Service |
ca3877 |
domain = domain[1:]
|
|
Packit Service |
ca3877 |
flags |= SOUP_TLD_RULE_EXCEPTION
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
if domain.startswith('*.'):
|
|
Packit Service |
ca3877 |
domain = domain[2:]
|
|
Packit Service |
ca3877 |
flags |= SOUP_TLD_RULE_MATCH_ALL
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
if domain.startswith('.'):
|
|
Packit Service |
ca3877 |
domain = domain[1:]
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
if not first:
|
|
Packit Service |
ca3877 |
inc_file.write(',\n')
|
|
Packit Service |
ca3877 |
else:
|
|
Packit Service |
ca3877 |
first = False
|
|
Packit Service |
ca3877 |
inc_file.write('{ "%s", %d }' % (domain.strip(), flags))
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
inc_file.write('\n')
|
|
Packit Service |
ca3877 |
|
|
Packit Service |
ca3877 |
tlds_file.close()
|
|
Packit Service |
ca3877 |
inc_file.close()
|
|
Packit Service |
ca3877 |
|