Software /
code /
prosody-modules
Annotate
mod_csi/mod_csi.lua @ 1889:46c49cff1023
mod_extdisco: Add a README
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 01 Oct 2015 20:53:42 +0200 |
parent | 1590:fbb4cd2922a1 |
child | 3395:eaf0b1e95016 |
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"; |
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 |
90fe03e65d2c
mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
14 module:fire_event(name, event); |
90fe03e65d2c
mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
15 return true; |
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 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 |
1590
fbb4cd2922a1
mod_csi: Update namespace to published version
Kim Alvefur <zash@zash.se>
parents:
1483
diff
changeset
|
20 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
|
21 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
|
22 |