Diff

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
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"));
+