from yaml import dump import main class RelayCommand: def __init__(self, *args): self.relay(*args) def relay( self, addr, authed, data, obj, spl, success, failure, info, incUsage, length ): if authed: if length == 3: if spl[1] == "add": if spl[2] in main.network.keys(): id, alias = main.network[spl[2]].add_relay() success( "Successfully created relay %s on network %s with alias %s" % (str(id), spl[2], alias) ) main.saveConf("network") return else: failure("No such network: %s" % spl[2]) return elif spl[1] == "list": if spl[2] not in main.network.keys(): failure("No such network: %s" % spl[2]) return info(dump(main.network[spl[2]].relays)) return else: incUsage("relay") return elif length == 4: if spl[1] == "add": if spl[2] in main.network.keys(): if not spl[3].isdigit(): failure("Must be a number, not %s" % spl[3]) return id, alias = main.network[spl[2]].add_relay(int(spl[3])) success( "Successfully created relay %s on network %s with alias %s" % (str(id), spl[2], alias) ) main.saveConf("network") return else: failure("No such network: %s" % spl[2]) return elif spl[1] == "del": if not spl[2] in main.network.keys(): failure("No such network: %s" % spl[2]) return if not spl[3].isdigit(): failure("Must be a number, not %s" % spl[3]) return if not int(spl[3]) in main.network[spl[2]].relays.keys(): failure("No such relay: %s on network %s" % (spl[3], spl[2])) return main.network[spl[2]].delete_relay(int(spl[3])) success( "Successfully deleted relay %s on network %s" % (spl[3], spl[2]) ) main.saveConf("network") return else: incUsage("relay") return else: incUsage("relay") return else: incUsage(None)