Annotate

mod_csi/mod_csi.lua @ 1483:90fe03e65d2c

mod_csi: Client State Indication support
author Matthew Wild <mwild1@gmail.com>
date Fri, 15 Aug 2014 16:34:10 +0100
child 1590:fbb4cd2922a1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1483
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 local st = require "util.stanza";
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 local csi_feature = st.stanza("csi", { xmlns = "urn:xmpp:csi" });
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 module:hook("stream-features", function (event)
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 if event.origin.username then
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 event.features:add_child(csi_feature);
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 end
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
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 function refire_event(name)
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 return function (event)
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 if event.origin.username then
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 module:fire_event(name, event);
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 return true;
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 end
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 end;
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17
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
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 module:hook("stanza/urn:xmpp:csi:active", refire_event("csi-client-active"));
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 module:hook("stanza/urn:xmpp:csi:inactive", refire_event("csi-client-inactive"));
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22