diff options
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> | 2018-08-24 20:34:34 +0200 |
---|---|---|
committer | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> | 2018-08-24 20:34:34 +0200 |
commit | 911cd71d123fba6bce1a89bc734c64665bcde3c3 (patch) | |
tree | 9c1ff1f7475d182a3af6ca524cf15895cde495e2 | |
parent | 023fc8feb6648db247899042a6d6fac69bd34b4c (diff) | |
download | prosody-911cd71d123fba6bce1a89bc734c64665bcde3c3.tar.gz prosody-911cd71d123fba6bce1a89bc734c64665bcde3c3.zip |
mod_lastactivity: Simplify iq handling by hooking on iq-get/ instead of iq/.
-rw-r--r-- | plugins/mod_lastactivity.lua | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/plugins/mod_lastactivity.lua b/plugins/mod_lastactivity.lua index 2dd61699..575e66be 100644 --- a/plugins/mod_lastactivity.lua +++ b/plugins/mod_lastactivity.lua @@ -24,22 +24,20 @@ module:hook("pre-presence/bare", function(event) end end, 10); -module:hook("iq/bare/jabber:iq:last:query", function(event) +module:hook("iq-get/bare/jabber:iq:last:query", function(event) local origin, stanza = event.origin, event.stanza; - if stanza.attr.type == "get" then - local username = jid_split(stanza.attr.to) or origin.username; - if not stanza.attr.to or is_contact_subscribed(username, module.host, jid_bare(stanza.attr.from)) then - local seconds, text = "0", ""; - if map[username] then - seconds = tostring(os.difftime(os.time(), map[username].t)); - text = map[username].s; - end - origin.send(st.reply(stanza):tag('query', {xmlns='jabber:iq:last', seconds=seconds}):text(text)); - else - origin.send(st.error_reply(stanza, 'auth', 'forbidden')); + local username = jid_split(stanza.attr.to) or origin.username; + if not stanza.attr.to or is_contact_subscribed(username, module.host, jid_bare(stanza.attr.from)) then + local seconds, text = "0", ""; + if map[username] then + seconds = tostring(os.difftime(os.time(), map[username].t)); + text = map[username].s; end - return true; + origin.send(st.reply(stanza):tag('query', {xmlns='jabber:iq:last', seconds=seconds}):text(text)); + else + origin.send(st.error_reply(stanza, 'auth', 'forbidden')); end + return true; end); module.save = function() |