#!/usr/bin/env python3

import sys
from urllib.parse import urlparse, parse_qs, parse_qsl

with open('/tmp/bridge-url-writer.log', 'a') as fp:
    fp.write('---------------------------------------\n%s\n' % ' '.join(sys.argv))
    for arg in sys.argv[1:]:
        url = urlparse(arg)
        with open('/tmp/torrc', 'a') as fp:
            fp.write('Bridge ')
            if url.scheme == 'bridge':
                fp.write(url.username)
                fp.write(' ')
                fp.write(url.path.strip('/'))  # strip / added as part of URL creation
                for k, v in parse_qsl(url.query):
                    fp.write(' ')
                    fp.write(k)
                    fp.write('=')
                    fp.write(v)
            elif url.hostname == 'bridge.onion' or url.hostname == 'bridges.torproject.org':
                qsd = parse_qs(url.query)
                fp.write(qsd['transport'])
                fp.write(' ')
                fp.write(qsd['ip'])
                fp.write(':')
                fp.write(qsd['orport'])
                fp.write(' ')
                fp.write(url.path.strip('/'))  # strip / added as part of URL creation
                del(qsd['transport'])
                del(qsd['ip'])
                del(qsd['orport'])
                for k, v in qsd.items():
                    fp.write(' ')
                    fp.write(k)
                    fp.write('=')
                    fp.write(v)
            fp.write('\n')
                
