Software /
code /
prosody
Changeset
9224:a84dbd2e08bc
mod_lastactivity: Simplify iq handling by hooking on iq-get/ instead of iq/.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Fri, 24 Aug 2018 20:34:34 +0200 |
parents | 9223:80dbb60d81e4 |
children | 9225:0ba963e82ac7 |
files | plugins/mod_lastactivity.lua |
diffstat | 1 files changed, 11 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/mod_lastactivity.lua Fri Aug 24 20:34:18 2018 +0200 +++ b/plugins/mod_lastactivity.lua Fri Aug 24 20:34:34 2018 +0200 @@ -24,22 +24,20 @@ 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()