Blob Blame History Raw
#!/usr/bin/env python3

# Generate tld rules
# Copyright (C) 2012 Red Hat, Inc.
# Based on tld-parser.c Copyright (C) 2012 Igalia S.L.

import sys
import codecs

SOUP_TLD_RULE_NORMAL = 0
SOUP_TLD_RULE_MATCH_ALL = 1 << 0
SOUP_TLD_RULE_EXCEPTION = 1 << 1

tlds_file = codecs.open(sys.argv[1], encoding='utf-8')
inc_file = codecs.open(sys.argv[2], 'w', encoding='utf-8')

first = True
for rule in tlds_file:
    rule = rule.strip()
    if rule == '' or rule.startswith('//'):
        continue
    domain = rule
    flags = 0
    if rule[0] == '!':
        domain = domain[1:]
        flags |= SOUP_TLD_RULE_EXCEPTION

    if domain.startswith('*.'):
        domain = domain[2:]
        flags |= SOUP_TLD_RULE_MATCH_ALL
    
    if domain.startswith('.'):
        domain = domain[1:]

    if not first:
        inc_file.write(',\n')
    else:
        first = False
    inc_file.write('{ "%s", %d }' % (domain.strip(), flags))

inc_file.write('\n')

tlds_file.close()
inc_file.close()