diff options
| author | 2019-06-28 18:36:43 +0100 | |
|---|---|---|
| committer | 2019-06-28 18:36:43 +0100 | |
| commit | 890c893ddf723cc0f68558b65daa43c230e863d3 (patch) | |
| tree | baf1ae8e3600158b7143af1774015af03f79e30f /modules/ircv3.py | |
| parent | DEBUG log when trying to git.io-shorten a github url (diff) | |
| signature | ||
Add ircv3.py - for IRCv3-related stats
Diffstat (limited to 'modules/ircv3.py')
| -rw-r--r-- | modules/ircv3.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/modules/ircv3.py b/modules/ircv3.py new file mode 100644 index 00000000..8b3c388f --- /dev/null +++ b/modules/ircv3.py @@ -0,0 +1,31 @@ +from src import ModuleManager, utils + +class Module(ModuleManager.BaseModule): + _name = "IRCv3" + + @utils.hook("received.command.specsup", min_args=1) + @utils.kwarg("help", "List servers supporting a given IRCv3 capability") + @utils.kwarg("usage", "<capability>") + def specsup(self, event): + spec = event["args_split"][0].lower() + supporting_servers = [] + + for server in self.bot.servers.values(): + if not server.connection_params.hostname == "localhost": + if spec in server.server_capabilities: + port = str(server.connection_params.port) + if server.connection_params.tls: + port = "+%s" % port + supporting_servers.append("%s:%s" % ( + server.connection_params.hostname, port)) + if supporting_servers: + event["stdout"].write("%s: %s" % (spec, + ", ".join(supporting_servers))) + else: + event["stderr"].write("No supporting servers found for %s" % spec) + + @utils.hook("received.command.caps") + @utils.kwarg("help", "List negotiated IRCv3 capabilities") + def capabilities(self, event): + event["stdout"].write("IRCv3 capabilities: %s" % + ", ".join(event["server"].agreed_capabilities)) |
