aboutsummaryrefslogtreecommitdiff
path: root/modules/ircv3.py
diff options
context:
space:
mode:
authorGravatar jesopo2019-06-28 18:36:43 +0100
committerGravatar jesopo2019-06-28 18:36:43 +0100
commit890c893ddf723cc0f68558b65daa43c230e863d3 (patch)
treebaf1ae8e3600158b7143af1774015af03f79e30f /modules/ircv3.py
parentDEBUG 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.py31
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))