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