diff options
| author | 2019-09-27 12:35:28 +0100 | |
|---|---|---|
| committer | 2019-09-27 12:35:28 +0100 | |
| commit | 54d874ddeea55958b31a566bef3a4c324a4486a4 (patch) | |
| tree | a8797e33e961d20b64c50fea508e12b51a28a528 /modules/admin.py | |
| parent | !changenickname -> !nickname (diff) | |
| signature | ||
take an option server alias arg for !reconnect
closes #166
Diffstat (limited to 'modules/admin.py')
| -rw-r--r-- | modules/admin.py | 44 |
1 files changed, 26 insertions, 18 deletions
diff --git a/modules/admin.py b/modules/admin.py index 76b3b37a..ea8ccf50 100644 --- a/modules/admin.py +++ b/modules/admin.py @@ -42,15 +42,32 @@ class Module(ModuleManager.BaseModule): event["stderr"].write("No channel provided") event["server"].send_part(target) + def _from_alias(self, alias): + id = self.bot.database.servers.get_by_alias(alias) + if id == None: + raise utils.EventError("Unknown server alias") + return self.bot.get_server_by_id(id) + @utils.hook("received.command.reconnect") def reconnect(self, event): """ :help: Reconnect to the current network :permission: reconnect """ - line = event["server"].send_quit("Reconnecting") - line.events.on("send").hook(lambda e: self.bot.reconnect( - event["server"].id, event["server"].connection_params)) + server = event["server"] + alias = str(event["server"]) + if event["args"]: + alias = event["args_split"][0] + server = self._from_alias(alias) + + if server: + line = server.send_quit("Reconnecting") + line.events.on("send").hook(lambda e: self.bot.reconnect( + server.id, server.connection_params)) + if not server == event["server"]: + event["stdout"].write("Reconnecting to %s" % alias) + else: + event["stdout"].write("Not connected to %s" % alias) @utils.hook("received.command.connect", min_args=1) def connect(self, event): @@ -59,13 +76,8 @@ class Module(ModuleManager.BaseModule): :usage: <server id> :permission: connect """ - alias = event["args"] - id = self.bot.database.servers.get_by_alias(alias) - if id == None: - raise utils.EventError("Unknown server alias") - - existing_server = self.bot.get_server_by_id(id) - if existing_server: + server = self._from_alias(event["args"]) + if server: raise utils.EventError("Already connected to %s" % str( existing_server)) @@ -79,16 +91,12 @@ class Module(ModuleManager.BaseModule): :usage: [server id] :permission: disconnect """ - id = event["server"].id - alias = event["server"].alias + server = event["server"] + alias = str(event["server"]) if event["args"]: alias = event["args_split"][0] - id = self.bot.database.servers.get_by_alias(alias) - if id == None: - raise utils.EventError("Unknown server alias") + server = self._from_alias(alias) - server = self.bot.get_server_by_id(id) - alias = None if not server == None: alias = str(server) server.disconnect() @@ -99,7 +107,7 @@ class Module(ModuleManager.BaseModule): else: raise utils.EventError("Server not connected") - event["stdout"].write("Disconnected from %s" % str(server)) + event["stdout"].write("Disconnected from %s" % alias) @utils.hook("received.command.shutdown") def shutdown(self, event): |
