aboutsummaryrefslogtreecommitdiff
path: root/modules/stats.py
diff options
context:
space:
mode:
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