Mercurial > prosody-modules
comparison mod_vjud/vcard.lib.lua @ 734:81de1e446bfe
mod_vjud: Don't break on undefined properties.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 01 Jul 2012 13:51:26 +0200 |
parents | 317e142fe6f1 |
children | aeb0999f12fa |
comparison
equal
deleted
inserted
replaced
733:dd3b30c0dc8a | 734:81de1e446bfe |
---|---|
225 end | 225 end |
226 | 226 |
227 local function from_xep54_item(item) | 227 local function from_xep54_item(item) |
228 local prop_name = item.name; | 228 local prop_name = item.name; |
229 local prop_def = vCard_dtd[prop_name]; | 229 local prop_def = vCard_dtd[prop_name]; |
230 if not prop_def then return nil end | |
231 | 230 |
232 local prop = { name = prop_name }; | 231 local prop = { name = prop_name }; |
233 | 232 |
234 if prop_def == "text" then | 233 if prop_def == "text" then |
235 prop[1] = item:get_text(); | 234 prop[1] = item:get_text(); |
297 | 296 |
298 local function from_xep54_vCard(vCard) | 297 local function from_xep54_vCard(vCard) |
299 local tags = vCard.tags; | 298 local tags = vCard.tags; |
300 local t = {}; | 299 local t = {}; |
301 for i=1,#tags do | 300 for i=1,#tags do |
302 t[i] = from_xep54_item(tags[i]); | 301 t_insert(t, from_xep54_item(tags[i])); |
303 end | 302 end |
304 return t | 303 return t |
305 end | 304 end |
306 | 305 |
307 function from_xep54(vCard) | 306 function from_xep54(vCard) |
310 end | 309 end |
311 if vCard.name == "xCard" then -- A collection of vCards | 310 if vCard.name == "xCard" then -- A collection of vCards |
312 local t = {}; | 311 local t = {}; |
313 local vCards = vCard.tags; | 312 local vCards = vCard.tags; |
314 for i=1,#vCards do | 313 for i=1,#vCards do |
315 local ti = from_xep54_vCard(vCards[i]); | 314 t[i] = from_xep54_vCard(vCards[i]); |
316 t[i] = ti; | |
317 --t[ti.name] = ti; | |
318 end | 315 end |
319 return t | 316 return t |
320 elseif vCard.name == "vCard" then -- A single vCard | 317 elseif vCard.name == "vCard" then -- A single vCard |
321 return from_xep54_vCard(vCard) | 318 return from_xep54_vCard(vCard) |
322 end | 319 end |