mod_vcard_legacy: Include avatar data even if metadata can't be loaded
authorKim Alvefur <zash@zash.se>
Fri, 07 Sep 2018 01:08:27 +0200
changeset 9276 f2258e9750cf
parent 9275 c047be86dd51
child 9277 1712e366b081
mod_vcard_legacy: Include avatar data even if metadata can't be loaded Normally both nodes should have the same configuration and matching items, but we can't depend on it without having some code that enforces it, which does not exist at the time of this commit. Including the avatar itself should be prioritised. The image format can be derived from magic bytes.
plugins/mod_vcard_legacy.lua
--- a/plugins/mod_vcard_legacy.lua	Fri Sep 07 01:06:27 2018 +0200
+++ b/plugins/mod_vcard_legacy.lua	Fri Sep 07 01:08:27 2018 +0200
@@ -111,9 +111,10 @@
 
 	local meta_ok, avatar_meta = pep_service:get_items("urn:xmpp:avatar:metadata", stanza.attr.from);
 	local data_ok, avatar_data = pep_service:get_items("urn:xmpp:avatar:data", stanza.attr.from);
-	if meta_ok and data_ok then
-		for _, hash in ipairs(avatar_meta) do
-			local meta = avatar_meta[hash];
+
+	if data_ok then
+		for _, hash in ipairs(avatar_data) do
+			local meta = meta_ok and avatar_meta[hash];
 			local data = avatar_data[hash];
 			local info = meta and meta.tags[1]:get_child("info");
 			vcard_temp:tag("PHOTO");