# HG changeset patch # User Kim Alvefur # Date 1534743363 -7200 # Node ID 9a8006f9e983506d4f4eef534919525fe8fbb3c5 # Parent 506aabdb13bc09fe55a7a82dea721301494cfd64 mod_vcard_legacy: Attach vcard-temp avatar hash to outgoing presence diff -r 506aabdb13bc -r 9a8006f9e983 plugins/mod_vcard_legacy.lua --- a/plugins/mod_vcard_legacy.lua Tue Aug 21 16:40:40 2018 +0200 +++ b/plugins/mod_vcard_legacy.lua Mon Aug 20 07:36:03 2018 +0200 @@ -53,3 +53,22 @@ origin.send(st.reply(stanza):add_child(vcard_temp)); return true; end); + +local function inject_xep153(event) + local origin, stanza = event.origin, event.stanza; + local username = origin.username; + if not username then return end + local pep = mod_pep.get_pep_service(username); + + stanza:remove_children("x", "vcard-temp:x:update"); + local x_update = st.stanza("x", { xmlns = "vcard-temp:x:update" }); + local ok, avatar_hash = pep:get_last_item("urn:xmpp:avatar:metadata", true); + if ok and avatar_hash then + x_update:text_tag("photo", avatar_hash); + end + stanza:add_direct_child(x_update); +end + +module:hook("pre-presence/full", inject_xep153, 1); +module:hook("pre-presence/bare", inject_xep153, 1); +module:hook("pre-presence/host", inject_xep153, 1);