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 |
