Add ircv3.py - for IRCv3-related stats
This commit is contained in:
parent
e6d8e75086
commit
890c893ddf
2 changed files with 31 additions and 8 deletions
31
modules/ircv3.py
Normal file
31
modules/ircv3.py
Normal file
|
@ -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))
|
|
@ -123,11 +123,3 @@ class Module(ModuleManager.BaseModule):
|
|||
@utils.hook("api.get.modules")
|
||||
def modules_api(self, event):
|
||||
return list(self.bot.modules.modules.keys())
|
||||
|
||||
@utils.hook("received.command.caps")
|
||||
def capabilities(self, event):
|
||||
"""
|
||||
:help: List negotiated IRCv3 capabilities
|
||||
"""
|
||||
event["stdout"].write("IRCv3 capabilities: %s" %
|
||||
", ".join(event["server"].agreed_capabilities))
|
||||
|
|
Loading…
Reference in a new issue