mod_csi/mod_csi.lua
author Martin Dosch <martin@mdosch.de>
Wed, 24 Jun 2020 09:05:05 +0200
changeset 4057 b0bc36d026d9
parent 3399 eaf0b1e95016
permissions -rw-r--r--
mod_watch_spam_reports: Fix ugly whitespace typo
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1483
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     1
local st = require "util.stanza";
1590
fbb4cd2922a1 mod_csi: Update namespace to published version
Kim Alvefur <zash@zash.se>
parents: 1483
diff changeset
     2
local xmlns_csi = "urn:xmpp:csi:0";
fbb4cd2922a1 mod_csi: Update namespace to published version
Kim Alvefur <zash@zash.se>
parents: 1483
diff changeset
     3
local csi_feature = st.stanza("csi", { xmlns = xmlns_csi });
1483
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     4
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     5
module:hook("stream-features", function (event)
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     6
	if event.origin.username then
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     7
		event.features:add_child(csi_feature);
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     8
	end
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     9
end);
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    10
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    11
function refire_event(name)
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    12
	return function (event)
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    13
		if event.origin.username then
3399
eaf0b1e95016 mod_csi: Backport 989cf872d5c0 from Prosody 0.11 to preserve compatibility
Matthew Wild <mwild1@gmail.com>
parents: 1590
diff changeset
    14
			event.origin.state = event.stanza.name;
1483
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    15
			module:fire_event(name, event);
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    16
			return true;
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    17
		end
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    18
	end;
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    19
end
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    20
1590
fbb4cd2922a1 mod_csi: Update namespace to published version
Kim Alvefur <zash@zash.se>
parents: 1483
diff changeset
    21
module:hook("stanza/"..xmlns_csi..":active", refire_event("csi-client-active"));
fbb4cd2922a1 mod_csi: Update namespace to published version
Kim Alvefur <zash@zash.se>
parents: 1483
diff changeset
    22
module:hook("stanza/"..xmlns_csi..":inactive", refire_event("csi-client-inactive"));
1483
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    23