Software /
code /
prosody
Diff
plugins/mod_vcard_legacy.lua @ 10270:c2b9ff42db03
Merge 0.11->trunk
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 21 Sep 2019 16:50:29 +0200 |
parent | 10215:82abf88db13f |
parent | 10269:4701415f5b0e |
child | 10549:3e50f86e5a2e |
line wrap: on
line diff
--- a/plugins/mod_vcard_legacy.lua Thu Sep 19 22:53:00 2019 +0200 +++ b/plugins/mod_vcard_legacy.lua Sat Sep 21 16:50:29 2019 +0200 @@ -321,13 +321,19 @@ if stanza.attr.type then return end local pep_service = 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 x_update = stanza:get_child("x", "vcard-temp:x:update"); + if not x_update then + x_update = st.stanza("x", { xmlns = "vcard-temp:x:update" }):tag("photo"); + stanza:add_direct_child(x_update); + elseif x_update:get_child("photo") then + return; -- XEP implies that these should be left alone + else + x_update:tag("photo"); + end local ok, avatar_hash = pep_service:get_last_item("urn:xmpp:avatar:metadata", true); if ok and avatar_hash then - x_update:text_tag("photo", avatar_hash); + x_update:text(avatar_hash); end - stanza:add_direct_child(x_update); end module:hook("pre-presence/full", inject_xep153, 1);