from json import load, dump, loads import redis from string import digits from utils.loaders.command_loader import loadCommands from utils.logging.log import * configPath = "conf/" certPath = "cert/" filemap = { "config": ["config.json", "configuration"], "keyconf": ["keyword.json", "keyword lists"], "pool": ["pool.json", "network, alias and relay mappings"], "help": ["help.json", "command help"], "counters": ["counters.json", "counters file"], "masterbuf": ["masterbuf.json", "master buffer"], "monitor": ["monitor.json", "monitoring database"], "alias": ["alias.json", "alias details"], "relay": ["relay.json", "relay list"], "network": ["network.json", "network list"], } connections = {} IRCPool = {} ReactorPool = {} FactoryPool = {} MonitorPool = [] CommandMap = {} def nets(): if not "pool" in globals(): return networks = set() for i in pool.keys(): networks.add("".join([x for x in i if not x in digits])) return networks def liveNets(): networks = set() for i in IRCPool.keys(): networks.add("".join([x for x in i if not x in digits])) return networks def register(command, function): if not command in CommandMap: CommandMap[command] = function debug("Registered command: %s" % command) else: error("Duplicate command: %s" % (command)) def saveConf(var): with open(configPath+filemap[var][0], "w") as f: dump(globals()[var], f, indent=4) return def loadConf(var): with open(configPath+filemap[var][0], "r") as f: globals()[var] = load(f) def initConf(): for i in filemap.keys(): loadConf(i) def initMain(): global r initConf() loadCommands(register) r = redis.StrictRedis(unix_socket_path=config["RedisSocket"], db=0)