import inspect import json import os def save(conf): json.dump(conf, open('config', 'w'), sort_keys=True, indent=2) if not os.path.exists('config'): open('config', 'w').write(inspect.cleandoc( r''' { "connections": { "local irc": { "server": "localhost", "nick": "skybot", "channels": ["#test"] } }, "prefix": ".", "disabled_plugins": [], "disabled_commands": [], "acls": {}, "api_keys": {}, "censored_strings": [ "DCC SEND", "1nj3ct", "thewrestlinggame", "startkeylogger", "hybux", "\\0", "\\x01", "!coz", "!tell /x" ] }''') + '\n') def config(): # reload config from file if file has changed config_mtime = os.stat('config').st_mtime if bot._config_mtime != config_mtime: try: bot.config = json.load(open('config')) bot._config_mtime = config_mtime for name, conf in bot.config['connections'].items(): if name in bot.conns: bot.conns[name].set_conf(conf) else: if conf.get('ssl'): bot.conns[name] = SSLIRC(conf) else: bot.conns[name] = IRC(conf) except ValueError as e: print('ERROR: malformed config!', e) bot._config_mtime = 0