#!/usr/bin/env python3 # PYTHON_ARGCOMPLETE_OK import os import sys import tooncher import yaml def run(username, config_path, engine_path = None): if os.path.exists(config_path): with open(config_path) as f: config = yaml.load(f.read()) else: config = {} if engine_path is None: engine_path = config['engine_path'] if 'engine_path' in config else None if engine_path is None: 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'], ) 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'), ) 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:]))