From 4ff111a21639f0a1175b04a916b3e7f01cb63bfb Mon Sep 17 00:00:00 2001 From: Mark Veidemanis Date: Thu, 21 Jul 2022 13:39:43 +0100 Subject: [PATCH] Improve email command --- commands/email.py | 58 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 42 insertions(+), 16 deletions(-) diff --git a/commands/email.py b/commands/email.py index 1b0ec5e..4817988 100644 --- a/commands/email.py +++ b/commands/email.py @@ -9,19 +9,34 @@ class EmailCommand: def email(self, addr, authed, data, obj, spl, success, failure, info, incUsage, length): if authed: if length == 4: - if not spl[2].isdigit(): - # failure("Must be a number, not %s" % spl[2]) - if spl[2] == "domain": - domain = spl[3] - if "@" in domain: - failure("Not a domain: %s" % domain) - return - if not domain in main.irc["_"]["domains"]: - main.irc["_"]["domains"].append(domain) - success("Successfully added domain %s to default config" % domain) - else: - failure("Domain already exists in default config: %s" % domain) - return + if spl[1] == "add": + if not spl[2].isdigit(): + # failure("Must be a number, not %s" % spl[2]) + if spl[2] == "domain": + domain = spl[3] + if "@" in domain: + failure("Not a domain: %s" % domain) + return + if not domain in main.irc["_"]["domains"]: + main.irc["_"]["domains"].append(domain) + success("Successfully added domain %s to default config" % domain) + main.saveConf("irc") + else: + failure("Domain already exists in default config: %s" % domain) + return + elif spl[1] == "del": + if not spl[2].isdigit(): + # failure("Must be a number, not %s" % spl[2]) + if spl[2] == "domain": + domain = spl[3] + + if domain in main.irc["_"]["domains"]: + main.irc["_"]["domains"].remove(domain) + success("Successfully removed domain %s to default config" % domain) + main.saveConf("irc") + else: + failure("Domain does not exist in default config: %s" % domain) + return else: num = int(spl[2]) @@ -53,12 +68,23 @@ class EmailCommand: if spl[1] == "list": info(dump(main.alias)) return - else: - incUsage("save") + incUsage("email") + return + elif length == 3: + if spl[1] == "list": + if spl[2] == "domain": + filtered = {f"{k}:{k2}":v2 for k,v in main.irc.items() for k2,v2 in v.items() if k2 == "domains"} + info(dump(filtered)) + return + else: + incUsage("email") + return + else: + incUsage("email") return else: - incUsage("save") + incUsage("email") return else: incUsage(None)