12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #!/usr/bin/env python3
- # PYTHON_ARGCOMPLETE_OK
- import os
- import sys
- import tooncher
- import yaml
- def run(username, config_path, engine_path=None, validate_ssl_certs=True):
- if os.path.exists(config_path):
- with open(config_path) as f:
- config = yaml.load(f.read())
- else:
- config = {}
- if engine_path is None:
- if 'engine_path' in config:
- engine_path = config['engine_path']
- else:
- raise Exception('missing path to toontown engine')
- accounts = config['accounts'] if 'accounts' in config else []
- for account in accounts:
- if account['username'] == username:
- tooncher.launch(
- engine_path=engine_path,
- username=account['username'],
- password=account['password'],
- validate_ssl_certs=validate_ssl_certs,
- )
- def _init_argparser():
- import argparse
- argparser = argparse.ArgumentParser(description=None)
- argparser.add_argument('username')
- argparser.add_argument(
- '--config',
- '-c',
- metavar='path',
- dest='config_path',
- help='path to config file (default: %(default)s)',
- default=os.path.join(os.path.expanduser('~'), '.tooncher'),
- )
- argparser.add_argument(
- '--engine-path',
- '-e',
- metavar='path',
- dest='engine_path',
- default=None,
- help='\n'.join([
- 'path to toontown engine.',
- 'this overrides the one specified in config file',
- ]),
- )
- argparser.add_argument(
- '--no-ssl-cert-validation',
- '-k',
- dest='validate_ssl_certs',
- help='do not validate ssl certificates',
- action='store_false',
- )
- return argparser
- def main(argv):
- argparser = _init_argparser()
- try:
- import argcomplete
- argcomplete.autocomplete(argparser)
- except ImportError:
- pass
- args = argparser.parse_args(argv)
- run(**vars(args))
- return 0
- if __name__ == "__main__":
- sys.exit(main(sys.argv[1:]))
|