plugins/mod_csi.lua
author Kim Alvefur <zash@zash.se>
Mon, 10 Apr 2023 13:50:09 +0200
changeset 13074 be9ac41f1619
parent 13030 a97f4b277221
child 13079 82980f6890cd
permissions -rw-r--r--
mod_csi: Remove module status, doesn't work because of mod_smacks This was meant to warn in case you had only mod_csi without a logic handling module like mod_csi_simple by checking if anything hooked this event, however mod_smacks also hooks this event and so this isn't really a useful way of detecting this condition.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12981
74b9e05af71e plugins: Prefix module imports with prosody namespace
Kim Alvefur <zash@zash.se>
parents: 10433
diff changeset
     1
local st = require "prosody.util.stanza";
9076
a5daf3f6d588 mod_csi: Imported from prosody-modules 66b3085ecc49
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     2
local xmlns_csi = "urn:xmpp:csi:0";
a5daf3f6d588 mod_csi: Imported from prosody-modules 66b3085ecc49
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     3
local csi_feature = st.stanza("csi", { xmlns = xmlns_csi });
a5daf3f6d588 mod_csi: Imported from prosody-modules 66b3085ecc49
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     4
13029
b7d0c1d75a37 mod_csi: Add metrics, covering changes and totals
Kim Alvefur <zash@zash.se>
parents: 12981
diff changeset
     5
local change = module:metric("counter", "changes", "events", "CSI state changes", {"csi_state"});
b7d0c1d75a37 mod_csi: Add metrics, covering changes and totals
Kim Alvefur <zash@zash.se>
parents: 12981
diff changeset
     6
10433
0b04d25c4ffb mod_csi: Cache CSI module availability to improve readabilty
Kim Alvefur <zash@zash.se>
parents: 10432
diff changeset
     7
local csi_handler_available = nil;
9076
a5daf3f6d588 mod_csi: Imported from prosody-modules 66b3085ecc49
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     8
module:hook("stream-features", function (event)
10433
0b04d25c4ffb mod_csi: Cache CSI module availability to improve readabilty
Kim Alvefur <zash@zash.se>
parents: 10432
diff changeset
     9
	if event.origin.username and csi_handler_available then
9076
a5daf3f6d588 mod_csi: Imported from prosody-modules 66b3085ecc49
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    10
		event.features:add_child(csi_feature);
a5daf3f6d588 mod_csi: Imported from prosody-modules 66b3085ecc49
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    11
	end
a5daf3f6d588 mod_csi: Imported from prosody-modules 66b3085ecc49
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    12
end);
a5daf3f6d588 mod_csi: Imported from prosody-modules 66b3085ecc49
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    13
a5daf3f6d588 mod_csi: Imported from prosody-modules 66b3085ecc49
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    14
function refire_event(name)
a5daf3f6d588 mod_csi: Imported from prosody-modules 66b3085ecc49
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    15
	return function (event)
a5daf3f6d588 mod_csi: Imported from prosody-modules 66b3085ecc49
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    16
		if event.origin.username then
9657
91856829f18b mod_csi: Fix copypaste mistake [luacheck]
Kim Alvefur <zash@zash.se>
parents: 9655
diff changeset
    17
			event.origin.state = event.stanza.name;
13029
b7d0c1d75a37 mod_csi: Add metrics, covering changes and totals
Kim Alvefur <zash@zash.se>
parents: 12981
diff changeset
    18
			change:with_labels(event.stanza.name):add(1);
9076
a5daf3f6d588 mod_csi: Imported from prosody-modules 66b3085ecc49
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    19
			module:fire_event(name, event);
a5daf3f6d588 mod_csi: Imported from prosody-modules 66b3085ecc49
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    20
			return true;
a5daf3f6d588 mod_csi: Imported from prosody-modules 66b3085ecc49
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    21
		end
a5daf3f6d588 mod_csi: Imported from prosody-modules 66b3085ecc49
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    22
	end;
a5daf3f6d588 mod_csi: Imported from prosody-modules 66b3085ecc49
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    23
end
a5daf3f6d588 mod_csi: Imported from prosody-modules 66b3085ecc49
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    24
a5daf3f6d588 mod_csi: Imported from prosody-modules 66b3085ecc49
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    25
module:hook("stanza/"..xmlns_csi..":active", refire_event("csi-client-active"));
a5daf3f6d588 mod_csi: Imported from prosody-modules 66b3085ecc49
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    26
module:hook("stanza/"..xmlns_csi..":inactive", refire_event("csi-client-inactive"));