annotate mod_http_user_count/mod_http_user_count.lua @ 6084:4c0e3fe57e92

mod_compliance_latest: Gracefull error logging on missing dependency. diff --git a/mod_compliance_latest/README.md b/mod_compliance_latest/README.md --- a/mod_compliance_latest/README.md +++ b/mod_compliance_latest/README.md @@ -9,13 +9,15 @@ rockspec: # Introduction -This module will always require and load to the lastest compliance tester we have in the community modules. -Currently this is [mod_compliance_2023]. +This meta-module will always `require` (and therefore auto-load) the lastest compliance tester we have in the community modules. +Currently this is [mod_compliance_2023]. See the linked module for further details. + +If you do not use the *Prosody plugin installer* this module will likely have limited value to you. +You can also just install the current compliance tester manually. # Configuration -Just load this module as any other module and it will automatically install [mod_compliance_2023] if you use the Prosody plugin installer. -See the linked module for further details. +Just load this module as any other module and it will automatically install and load [mod_compliance_2023] if you use the *Prosody plugin installer*. # Compatibility diff --git a/mod_compliance_latest/mod_compliance_latest.lua b/mod_compliance_latest/mod_compliance_latest.lua --- a/mod_compliance_latest/mod_compliance_latest.lua +++ b/mod_compliance_latest/mod_compliance_latest.lua @@ -1,1 +1,6 @@ -module:depends("compliance_2023"); +local success, err = pcall(function() module:depends("compliance_2023") end) + +if not success then + module:log("error", "Error, can't load module: mod_compliance_2023. Is this module downloaded in a folder readable by prosody?") + return 1, "Error: Couldn't load dependency mod_compliance_2023." +end
author Menel <menel@snikket.de>
date Mon, 23 Dec 2024 12:58:03 +0100
parents a45f2f79e99b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1263
fe29627a5ed8 mod_http_user_count: HTTP module to report the current number of online users or sessions
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 local it = require "util.iterators";
1830
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
2 local jid_split = require "util.jid".prepped_split;
1263
fe29627a5ed8 mod_http_user_count: HTTP module to report the current number of online users or sessions
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3
fe29627a5ed8 mod_http_user_count: HTTP module to report the current number of online users or sessions
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 module:depends("http");
fe29627a5ed8 mod_http_user_count: HTTP module to report the current number of online users or sessions
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5
1830
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
6 local function check_muc(jid)
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
7 local room_name, host = jid_split(jid);
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
8 if not hosts[host] then
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
9 return nil, "No such host: "..host;
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
10 elseif not hosts[host].modules.muc then
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
11 return nil, "Host '"..host.."' is not a MUC service";
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
12 end
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
13 return room_name, host;
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
14 end
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
15
1263
fe29627a5ed8 mod_http_user_count: HTTP module to report the current number of online users or sessions
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 module:provides("http", {
fe29627a5ed8 mod_http_user_count: HTTP module to report the current number of online users or sessions
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 route = {
fe29627a5ed8 mod_http_user_count: HTTP module to report the current number of online users or sessions
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 ["GET /sessions"] = function () return tostring(it.count(it.keys(prosody.full_sessions))); end;
fe29627a5ed8 mod_http_user_count: HTTP module to report the current number of online users or sessions
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 ["GET /users"] = function () return tostring(it.count(it.keys(prosody.bare_sessions))); end;
1830
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
20 ["GET /host"] = function () return tostring(it.count(it.keys(prosody.hosts[module.host].sessions))); end;
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
21 ["GET /room/*"] = function (request, room_jid)
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
22 local name, host = check_muc(room_jid);
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
23 if not name then
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
24 return "0";
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
25 end
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
26 local room = prosody.hosts[host].modules.muc.rooms[name.."@"..host];
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
27 if not room then
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
28 return "0";
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
29 end
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
30 return tostring(it.count(it.keys(room._occupants)));
a45f2f79e99b mod_http_user_count: Support for host and MUC session counts
Matthew Wild <mwild1@gmail.com>
parents: 1263
diff changeset
31 end;
1263
fe29627a5ed8 mod_http_user_count: HTTP module to report the current number of online users or sessions
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32 };
fe29627a5ed8 mod_http_user_count: HTTP module to report the current number of online users or sessions
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33 });