changeset 1483:90fe03e65d2c

mod_csi: Client State Indication support
author Matthew Wild <mwild1@gmail.com>
date Fri, 15 Aug 2014 16:34:10 +0100
parents 25be5fde250f
children 53a3a19d6093
files mod_csi/mod_csi.lua
diffstat 1 files changed, 22 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mod_csi/mod_csi.lua	Fri Aug 15 16:34:10 2014 +0100
@@ -0,0 +1,22 @@
+local st = require "util.stanza";
+local csi_feature = st.stanza("csi", { xmlns = "urn:xmpp:csi" });
+
+module:hook("stream-features", function (event)
+	if event.origin.username then
+		event.features:add_child(csi_feature);
+	end
+end);
+
+function refire_event(name)
+	return function (event)
+		if event.origin.username then
+			module:fire_event(name, event);
+			return true;
+		end
+	end;
+		
+end
+
+module:hook("stanza/urn:xmpp:csi:active", refire_event("csi-client-active"));
+module:hook("stanza/urn:xmpp:csi:inactive", refire_event("csi-client-inactive"));
+