Mercurial > prosody-modules
changeset 1486:b3e692ee16b5
mod_csi_compat: Implement the google:queue protocol and map to mod_csi events
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 15 Aug 2014 21:17:58 +0100 |
parents | d8c50448d0e7 |
children | 5410f5c30d63 |
files | mod_csi_compat/mod_csi_compat.lua |
diffstat | 1 files changed, 18 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_csi_compat/mod_csi_compat.lua Fri Aug 15 21:17:58 2014 +0100 @@ -0,0 +1,18 @@ +local st = require "util.stanza"; + +module:depends("csi"); + +module:add_feature("google:queue"); + +module:hook("iq-set/self/google:queue:query", function(event) + local origin, stanza = event.origin, event.stanza; + (origin.log or module._log)("debug", "Google queue invoked (CSI compat mode)") + local payload = stanza:get_child("query", "google:queue"); + if payload:get_child("enable") then + module:fire_event("csi-client-inactive", event); + elseif payload:get_child("disable") then + module:fire_event("csi-client-active", event); + end + -- <flush/> is implemented as a noop, any IQ stanza would flush the queue anyways. + return origin.send(st.reply(stanza)); +end, 10);