Mercurial > prosody-modules
comparison mod_profile/mod_profile.lua @ 3186:1fe5b156d220
mod_profile: Add support for XEP-0398
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Fri, 13 Jul 2018 01:13:37 +0200 |
| parents | 973caebcb40b |
| children | 7c450c27d4ba |
comparison
equal
deleted
inserted
replaced
| 3185:973caebcb40b | 3186:1fe5b156d220 |
|---|---|
| 17 pep_plus = module:depends"pep_plus"; | 17 pep_plus = module:depends"pep_plus"; |
| 18 end | 18 end |
| 19 | 19 |
| 20 local storage = module:open_store(); | 20 local storage = module:open_store(); |
| 21 local legacy_storage = module:open_store("vcard"); | 21 local legacy_storage = module:open_store("vcard"); |
| 22 | |
| 23 module:hook("account-disco-info", function (event) | |
| 24 event.reply:tag("feature", { var = "urn:xmpp:pep-vcard-conversion:0" }):up(); | |
| 25 end); | |
| 22 | 26 |
| 23 local function get_item(vcard, name) -- luacheck: ignore 431 | 27 local function get_item(vcard, name) -- luacheck: ignore 431 |
| 24 local item; | 28 local item; |
| 25 for i=1, #vcard do | 29 for i=1, #vcard do |
| 26 item=vcard[i]; | 30 item=vcard[i]; |
| 231 return true; | 235 return true; |
| 232 end); | 236 end); |
| 233 end | 237 end |
| 234 end | 238 end |
| 235 | 239 |
| 240 local function inject_xep153(event) | |
| 241 local origin, stanza = event.origin, event.stanza; | |
| 242 local username = origin.username; | |
| 243 local pep = pep_plus.get_pep_service(username); | |
| 244 | |
| 245 stanza:remove_children("x", "vcard-temp:x:update"); | |
| 246 local x_update = st.stanza("x", { xmlns = "vcard-temp:x:update" }); | |
| 247 local avatar_hash = pep:get_items("urn:xmpp:avatar:metadata"); | |
| 248 if avatar_hash then | |
| 249 x_update:text_tag("photo", avatar_hash); | |
| 250 end | |
| 251 stanza:add_direct_child(x_update); | |
| 252 end | |
| 253 | |
| 254 if pep_plus then | |
| 255 module:hook("pre-presence/full", inject_xep153) | |
| 256 module:hook("pre-presence/bare", inject_xep153) | |
| 257 module:hook("pre-presence/host", inject_xep153) | |
| 258 end |
