annotate mod_stats39/mod_stats39.lua @ 5265:f845c218e52c

mod_http_oauth2: Allow revoking a token without OAuth client credentials If you have a valid token, and you're not supposed to have it, revoking it seems the most responsible thing to do with it, so it should be allowed, while if you are supposed to have it, you should also be allowed to revoke it.
author Kim Alvefur <zash@zash.se>
date Tue, 21 Mar 2023 22:02:38 +0100
parents bac3dae031ee
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3839
a4b05f34a790 mod_stats39: Provides statsmanager stats via XEP-0039
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 local statsman = require "core.statsmanager";
a4b05f34a790 mod_stats39: Provides statsmanager stats via XEP-0039
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 local st = require "util.stanza";
3846
3941768916f1 mod_stats39: Format numbers with a bit more precision
Kim Alvefur <zash@zash.se>
parents: 3840
diff changeset
3 local s_format = string.format;
3839
a4b05f34a790 mod_stats39: Provides statsmanager stats via XEP-0039
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4
4595
bac3dae031ee Add note of incompatibility with trunk since 5f15ab7c6ae5
Kim Alvefur <zash@zash.se>
parents: 3847
diff changeset
5 assert(statsman.get_stats, "not compatible with trunk based on openmetrics");
bac3dae031ee Add note of incompatibility with trunk since 5f15ab7c6ae5
Kim Alvefur <zash@zash.se>
parents: 3847
diff changeset
6
3847
ffc64d285a96 mod_stats39: Advertise namespace as feature (not part of the XEP?)
Kim Alvefur <zash@zash.se>
parents: 3846
diff changeset
7 module:add_feature("http://jabber.org/protocol/stats");
ffc64d285a96 mod_stats39: Advertise namespace as feature (not part of the XEP?)
Kim Alvefur <zash@zash.se>
parents: 3846
diff changeset
8
3839
a4b05f34a790 mod_stats39: Provides statsmanager stats via XEP-0039
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 module:hook("iq/host/http://jabber.org/protocol/stats:query", function (event)
a4b05f34a790 mod_stats39: Provides statsmanager stats via XEP-0039
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 local origin, stanza = event.origin, event.stanza;
a4b05f34a790 mod_stats39: Provides statsmanager stats via XEP-0039
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 local stats, _, extra = statsman.get_stats();
3840
054898e84a04 mod_stats39: Use a more local reference (silence luacheck warning)
Kim Alvefur <zash@zash.se>
parents: 3839
diff changeset
12 local reply = st.reply(stanza);
3839
a4b05f34a790 mod_stats39: Provides statsmanager stats via XEP-0039
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 reply:tag("query", { xmlns = "http://jabber.org/protocol/stats" });
a4b05f34a790 mod_stats39: Provides statsmanager stats via XEP-0039
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 for stat, value in pairs(stats) do
a4b05f34a790 mod_stats39: Provides statsmanager stats via XEP-0039
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 local unit = extra[stat] and extra[stat].units;
3846
3941768916f1 mod_stats39: Format numbers with a bit more precision
Kim Alvefur <zash@zash.se>
parents: 3840
diff changeset
16 reply:tag("stat", { name = stat, unit = unit, value = s_format("%.12g", value) }):up();
3839
a4b05f34a790 mod_stats39: Provides statsmanager stats via XEP-0039
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 end
a4b05f34a790 mod_stats39: Provides statsmanager stats via XEP-0039
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18 origin.send(reply);
a4b05f34a790 mod_stats39: Provides statsmanager stats via XEP-0039
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 return true;
a4b05f34a790 mod_stats39: Provides statsmanager stats via XEP-0039
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 end)