diff options
| author | 2019-07-04 13:15:51 +0100 | |
|---|---|---|
| committer | 2019-07-04 13:15:51 +0100 | |
| commit | 43c8ad0ff66e2d24ed8f21ae758fe8a807e9db26 (patch) | |
| tree | e071c2751ad5e9e032dbd32ec166eb4a8fc5e009 /modules | |
| parent | WARN log when a RSS feed throws in _check_url (diff) | |
| signature | ||
Add !editserver command
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/admin.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/modules/admin.py b/modules/admin.py index 3128afb8..b9ba25e1 100644 --- a/modules/admin.py +++ b/modules/admin.py @@ -135,3 +135,41 @@ class Module(ModuleManager.BaseModule): exc_info=True) return event["stdout"].write("Added server '%s'" % alias) + + @utils.hook("received.command.editserver") + @utils.kwarg("min_args", 3) + @utils.kwarg("help", "Edit server details") + @utils.kwarg("usage", "<alias> <option> <value>") + @utils.kwarg("permission", "editserver") + def edit_server(self, event): + alias = event["args_split"][0] + server = self.bot.get_server_by_alias(alias) + if server == None: + raise utils.EventError("Unknown server '%s'" % alias) + + option = event["args_split"][1].lower() + value = " ".join(event["args_split"][2:]) + value_parsed = None + + if option == "hostname": + value_parsed = value + elif option == "port": + if not value.isdigit(): + raise utils.EventError("Invalid port") + value_parsed = int(value.lstrip("0")) + elif option == "tls": + value_lower = value.lower() + if not value_lower in ["yes", "no"]: + raise utils.EventError("TLS should be either 'yes' or 'no'") + value_parsed = value_lower == "yes" + elif option == "password": + value_parsed = value + elif option == "bindhost": + value_parsed = value + elif option in ["nickname", "username"]: + value_parsed = value + else: + raise utils.EventError("Unknown option '%s'" % option) + + self.bot.database.servers.edit(server.id, option, value_parsed) + event["stdout"].write("Set %s for %s" % (option, alias)) |
