aboutsummaryrefslogtreecommitdiff
path: root/modules/stats.py
diff options
context:
space:
mode:
authorGravatar jesopo2018-10-04 17:10:15 +0100
committerGravatar jesopo2018-10-04 17:10:15 +0100
commitfdddb33f32e0b6b85628a8d90813eea53f312721 (patch)
tree12c8674e7c253f0815ca05aa9d1cc36cdb9b6982 /modules/stats.py
parentTimeout REST API requests after 10 seconds (diff)
signature
Added api.channels handler
Diffstat (limited to 'modules/stats.py')
-rw-r--r--modules/stats.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/modules/stats.py b/modules/stats.py
index f9a35d13..bb44cf14 100644
--- a/modules/stats.py
+++ b/modules/stats.py
@@ -47,3 +47,27 @@ class Module(ModuleManager.BaseModule):
def stats_api(self, event):
networks, channels, users = self._stats()
return {"networks": networks, "channels": channels, "users": users}
+
+ @utils.hook("api.channels")
+ def channels_api(self, event):
+ print(event["path"])
+ if "server-id" in event["params"]:
+ server_id = event["params"]["server-id"][0]
+ if not server_id.isdigit():
+ return None
+ server_id = int(server_id)
+
+ server = self.bot.get_server(server_id)
+ if not server:
+ return None
+ channels = {}
+ for channel in server.channels.values():
+ channels[channel.name] = len(channel.users)
+ return channels
+ else:
+ channels = {}
+ for server in self.bot.servers.values():
+ channels[server.id] = {}
+ for channel in server.channels.values():
+ channels[server.id][str(channel)] = len(channel.users)
+ return channels