Software /
code /
prosody-modules
Annotate
mod_vjud/vcard.lib.lua @ 4049:78f1de5301fc
mod_adhoc_dataforms_demo: Fix duplicate field prevention
It's supposed to only include each type of form field once per form at
most but it didn't note which fields it had added already. No idea what
the probability was anyways, probably pretty low.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 23 Jun 2020 19:40:55 +0200 |
parent | 1343:7dbde05b48a9 |
rev | line source |
---|---|
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 -- Copyright (C) 2011-2012 Kim Alvefur |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
2 -- |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 -- This project is MIT/X11 licensed. Please see the |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 -- COPYING file in the source package for more information. |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 -- |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 -- TODO |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
8 -- Fix folding. |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 local st = require "util.stanza"; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 local t_insert, t_concat = table.insert, table.concat; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 local type = type; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 local next, pairs, ipairs = next, pairs, ipairs; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
15 local from_text, to_text, from_xep54, to_xep54; |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
16 |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
17 local line_sep = "\n"; |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
18 |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
19 local vCard_dtd; -- See end of file |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
20 |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
21 local function fold_line() |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
22 error "Not implemented" --TODO |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
23 end |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
24 local function unfold_line() |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
25 error "Not implemented" |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
26 -- gsub("\r?\n[ \t]([^\r\n])", "%1"); |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
27 end |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
28 |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
29 local function vCard_esc(s) |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
30 return s:gsub("[,:;\\]", "\\%1"):gsub("\n","\\n"); |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
31 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
32 |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
33 local function vCard_unesc(s) |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
34 return s:gsub("\\?[\\nt:;,]", { |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
35 ["\\\\"] = "\\", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
36 ["\\n"] = "\n", |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
37 ["\\r"] = "\r", |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
38 ["\\t"] = "\t", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
39 ["\\:"] = ":", -- FIXME Shouldn't need to espace : in values, just params |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
40 ["\\;"] = ";", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
41 ["\\,"] = ",", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
42 [":"] = "\29", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
43 [";"] = "\30", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
44 [","] = "\31", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
45 }); |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
46 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
47 |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
48 local function item_to_xep54(item) |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
49 local t = st.stanza(item.name, { xmlns = "vcard-temp" }); |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
50 |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
51 local prop_def = vCard_dtd[item.name]; |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
52 if prop_def == "text" then |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
53 t:text(item[1]); |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
54 elseif type(prop_def) == "table" then |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
55 if prop_def.types and item.TYPE then |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
56 if type(item.TYPE) == "table" then |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
57 for _,v in pairs(prop_def.types) do |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
58 for _,typ in pairs(item.TYPE) do |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
59 if typ:upper() == v then |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
60 t:tag(v):up(); |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
61 break; |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
62 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
63 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
64 end |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
65 else |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
66 t:tag(item.TYPE:upper()):up(); |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
67 end |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
68 end |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
69 |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
70 if prop_def.props then |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
71 for _,v in pairs(prop_def.props) do |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
72 if item[v] then |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
73 t:tag(v):up(); |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
74 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
75 end |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
76 end |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
77 |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
78 if prop_def.value then |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
79 t:tag(prop_def.value):text(item[1]):up(); |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
80 elseif prop_def.values then |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
81 local prop_def_values = prop_def.values; |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
82 local repeat_last = prop_def_values.behaviour == "repeat-last" and prop_def_values[#prop_def_values]; |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
83 for i=1,#item do |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
84 t:tag(prop_def.values[i] or repeat_last):text(item[i]):up(); |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
85 end |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
86 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
87 end |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
88 |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
89 return t; |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
90 end |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
91 |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
92 local function vcard_to_xep54(vCard) |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
93 local t = st.stanza("vCard", { xmlns = "vcard-temp" }); |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
94 for i=1,#vCard do |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
95 t:add_child(item_to_xep54(vCard[i])); |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
96 end |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
97 return t; |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
98 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
99 |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
100 function to_xep54(vCards) |
806
d15a9eaa63ea
mod_vjud/vcard.lib: Handle empty vcards (thanks mva)
Kim Alvefur <zash@zash.se>
parents:
788
diff
changeset
|
101 if not vCards[1] or vCards[1].name then |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
102 return vcard_to_xep54(vCards) |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
103 else |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
104 local t = st.stanza("xCard", { xmlns = "vcard-temp" }); |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
105 for i=1,#vCards do |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
106 t:add_child(vcard_to_xep54(vCards[i])); |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
107 end |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
108 return t; |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
109 end |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
110 end |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
111 |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
112 function from_text(data) |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
113 data = data -- unfold and remove empty lines |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
114 :gsub("\r\n","\n") |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
115 :gsub("\n ", "") |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
116 :gsub("\n\n+","\n"); |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
117 local vCards = {}; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
118 local c; -- current item |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
119 for line in data:gmatch("[^\n]+") do |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
120 local line = vCard_unesc(line); |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
121 local name, params, value = line:match("^([-%a]+)(\30?[^\29]*)\29(.*)$"); |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
122 value = value:gsub("\29",":"); |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
123 if #params > 0 then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
124 local _params = {}; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
125 for k,isval,v in params:gmatch("\30([^=]+)(=?)([^\30]*)") do |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
126 k = k:upper(); |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
127 local _vt = {}; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
128 for _p in v:gmatch("[^\31]+") do |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
129 _vt[#_vt+1]=_p |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
130 _vt[_p]=true; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
131 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
132 if isval == "=" then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
133 _params[k]=_vt; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
134 else |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
135 _params[k]=true; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
136 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
137 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
138 params = _params; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
139 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
140 if name == "BEGIN" and value == "VCARD" then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
141 c = {}; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
142 vCards[#vCards+1] = c; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
143 elseif name == "END" and value == "VCARD" then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
144 c = nil; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
145 elseif vCard_dtd[name] then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
146 local dtd = vCard_dtd[name]; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
147 local p = { name = name }; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
148 c[#c+1]=p; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
149 --c[name]=p; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
150 local up = c; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
151 c = p; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
152 if dtd.types then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
153 for _, t in ipairs(dtd.types) do |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
154 local t = t:lower(); |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
155 if ( params.TYPE and params.TYPE[t] == true) |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
156 or params[t] == true then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
157 c.TYPE=t; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
158 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
159 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
160 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
161 if dtd.props then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
162 for _, p in ipairs(dtd.props) do |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
163 if params[p] then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
164 if params[p] == true then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
165 c[p]=true; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
166 else |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
167 for _, prop in ipairs(params[p]) do |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
168 c[p]=prop; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
169 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
170 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
171 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
172 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
173 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
174 if dtd == "text" or dtd.value then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
175 t_insert(c, value); |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
176 elseif dtd.values then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
177 local value = "\30"..value; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
178 for p in value:gmatch("\30([^\30]*)") do |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
179 t_insert(c, p); |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
180 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
181 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
182 c = up; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
183 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
184 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
185 return vCards; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
186 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
187 |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
188 local function item_to_text(item) |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
189 local value = {}; |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
190 for i=1,#item do |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
191 value[i] = vCard_esc(item[i]); |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
192 end |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
193 value = t_concat(value, ";"); |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
194 |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
195 local params = ""; |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
196 for k,v in pairs(item) do |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
197 if type(k) == "string" and k ~= "name" then |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
198 params = params .. (";%s=%s"):format(k, type(v) == "table" and t_concat(v,",") or v); |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
199 end |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
200 end |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
201 |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
202 return ("%s%s:%s"):format(item.name, params, value) |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
203 end |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
204 |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
205 local function vcard_to_text(vcard) |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
206 local t={}; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
207 t_insert(t, "BEGIN:VCARD") |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
208 for i=1,#vcard do |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
209 t_insert(t, item_to_text(vcard[i])); |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
210 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
211 t_insert(t, "END:VCARD") |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
212 return t_concat(t, line_sep); |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
213 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
214 |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
215 function to_text(vCards) |
806
d15a9eaa63ea
mod_vjud/vcard.lib: Handle empty vcards (thanks mva)
Kim Alvefur <zash@zash.se>
parents:
788
diff
changeset
|
216 if vCards[1] and vCards[1].name then |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
217 return vcard_to_text(vCards) |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
218 else |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
219 local t = {}; |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
220 for i=1,#vCards do |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
221 t[i]=vcard_to_text(vCards[i]); |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
222 end |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
223 return t_concat(t, line_sep); |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
224 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
225 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
226 |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
227 local function from_xep54_item(item) |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
228 local prop_name = item.name; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
229 local prop_def = vCard_dtd[prop_name]; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
230 |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
231 local prop = { name = prop_name }; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
232 |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
233 if prop_def == "text" then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
234 prop[1] = item:get_text(); |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
235 elseif type(prop_def) == "table" then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
236 if prop_def.value then --single item |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
237 prop[1] = item:get_child_text(prop_def.value) or ""; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
238 elseif prop_def.values then --array |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
239 local value_names = prop_def.values; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
240 if value_names.behaviour == "repeat-last" then |
788
aeb0999f12fa
mod_vjud/vcard.lib: Iterate on tags instead of items (thanks mva)
Kim Alvefur <zash@zash.se>
parents:
734
diff
changeset
|
241 for i=1,#item.tags do |
aeb0999f12fa
mod_vjud/vcard.lib: Iterate on tags instead of items (thanks mva)
Kim Alvefur <zash@zash.se>
parents:
734
diff
changeset
|
242 t_insert(prop, item.tags[i]:get_text() or ""); |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
243 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
244 else |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
245 for i=1,#value_names do |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
246 t_insert(prop, item:get_child_text(value_names[i]) or ""); |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
247 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
248 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
249 elseif prop_def.names then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
250 local names = prop_def.names; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
251 for i=1,#names do |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
252 if item:get_child(names[i]) then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
253 prop[1] = names[i]; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
254 break; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
255 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
256 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
257 end |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
258 |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
259 if prop_def.props_verbatim then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
260 for k,v in pairs(prop_def.props_verbatim) do |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
261 prop[k] = v; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
262 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
263 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
264 |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
265 if prop_def.types then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
266 local types = prop_def.types; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
267 prop.TYPE = {}; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
268 for i=1,#types do |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
269 if item:get_child(types[i]) then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
270 t_insert(prop.TYPE, types[i]:lower()); |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
271 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
272 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
273 if #prop.TYPE == 0 then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
274 prop.TYPE = nil; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
275 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
276 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
277 |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
278 -- A key-value pair, within a key-value pair? |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
279 if prop_def.props then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
280 local params = prop_def.props; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
281 for i=1,#params do |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
282 local name = params[i] |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
283 local data = item:get_child_text(name); |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
284 if data then |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
285 prop[name] = prop[name] or {}; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
286 t_insert(prop[name], data); |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
287 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
288 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
289 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
290 else |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
291 return nil |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
292 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
293 |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
294 return prop; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
295 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
296 |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
297 local function from_xep54_vCard(vCard) |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
298 local tags = vCard.tags; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
299 local t = {}; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
300 for i=1,#tags do |
734
81de1e446bfe
mod_vjud: Don't break on undefined properties.
Kim Alvefur <zash@zash.se>
parents:
732
diff
changeset
|
301 t_insert(t, from_xep54_item(tags[i])); |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
302 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
303 return t |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
304 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
305 |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
306 function from_xep54(vCard) |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
307 if vCard.attr.xmlns ~= "vcard-temp" then |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
308 return nil, "wrong-xmlns"; |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
309 end |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
310 if vCard.name == "xCard" then -- A collection of vCards |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
311 local t = {}; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
312 local vCards = vCard.tags; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
313 for i=1,#vCards do |
734
81de1e446bfe
mod_vjud: Don't break on undefined properties.
Kim Alvefur <zash@zash.se>
parents:
732
diff
changeset
|
314 t[i] = from_xep54_vCard(vCards[i]); |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
315 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
316 return t |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
317 elseif vCard.name == "vCard" then -- A single vCard |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
318 return from_xep54_vCard(vCard) |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
319 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
320 end |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
321 |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
322 -- This was adapted from http://xmpp.org/extensions/xep-0054.html#dtd |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
323 vCard_dtd = { |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
324 VERSION = "text", --MUST be 3.0, so parsing is redundant |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
325 FN = "text", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
326 N = { |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
327 values = { |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
328 "FAMILY", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
329 "GIVEN", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
330 "MIDDLE", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
331 "PREFIX", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
332 "SUFFIX", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
333 }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
334 }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
335 NICKNAME = "text", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
336 PHOTO = { |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
337 props_verbatim = { ENCODING = { "b" } }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
338 props = { "TYPE" }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
339 value = "BINVAL", --{ "EXTVAL", }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
340 }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
341 BDAY = "text", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
342 ADR = { |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
343 types = { |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
344 "HOME", |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
345 "WORK", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
346 "POSTAL", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
347 "PARCEL", |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
348 "DOM", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
349 "INTL", |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
350 "PREF", |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
351 }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
352 values = { |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
353 "POBOX", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
354 "EXTADD", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
355 "STREET", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
356 "LOCALITY", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
357 "REGION", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
358 "PCODE", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
359 "CTRY", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
360 } |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
361 }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
362 LABEL = { |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
363 types = { |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
364 "HOME", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
365 "WORK", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
366 "POSTAL", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
367 "PARCEL", |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
368 "DOM", |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
369 "INTL", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
370 "PREF", |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
371 }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
372 value = "LINE", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
373 }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
374 TEL = { |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
375 types = { |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
376 "HOME", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
377 "WORK", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
378 "VOICE", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
379 "FAX", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
380 "PAGER", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
381 "MSG", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
382 "CELL", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
383 "VIDEO", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
384 "BBS", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
385 "MODEM", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
386 "ISDN", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
387 "PCS", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
388 "PREF", |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
389 }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
390 value = "NUMBER", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
391 }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
392 EMAIL = { |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
393 types = { |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
394 "HOME", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
395 "WORK", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
396 "INTERNET", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
397 "PREF", |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
806
diff
changeset
|
398 "X400", |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
399 }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
400 value = "USERID", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
401 }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
402 JABBERID = "text", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
403 MAILER = "text", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
404 TZ = "text", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
405 GEO = { |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
406 values = { |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
407 "LAT", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
408 "LON", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
409 }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
410 }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
411 TITLE = "text", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
412 ROLE = "text", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
413 LOGO = "copy of PHOTO", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
414 AGENT = "text", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
415 ORG = { |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
416 values = { |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
417 behaviour = "repeat-last", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
418 "ORGNAME", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
419 "ORGUNIT", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
420 } |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
421 }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
422 CATEGORIES = { |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
423 values = "KEYWORD", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
424 }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
425 NOTE = "text", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
426 PRODID = "text", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
427 REV = "text", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
428 SORTSTRING = "text", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
429 SOUND = "copy of PHOTO", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
430 UID = "text", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
431 URL = "text", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
432 CLASS = { |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
433 names = { -- The item.name is the value if it's one of these. |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
434 "PUBLIC", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
435 "PRIVATE", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
436 "CONFIDENTIAL", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
437 }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
438 }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
439 KEY = { |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
440 props = { "TYPE" }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
441 value = "CRED", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
442 }, |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
443 DESC = "text", |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
444 }; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
445 vCard_dtd.LOGO = vCard_dtd.PHOTO; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
446 vCard_dtd.SOUND = vCard_dtd.PHOTO; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
447 |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
448 return { |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
449 from_text = from_text; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
450 to_text = to_text; |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
451 |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
452 from_xep54 = from_xep54; |
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
453 to_xep54 = to_xep54; |
732
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
454 |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
455 -- COMPAT: |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
456 lua_to_text = to_text; |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
457 lua_to_xep54 = to_xep54; |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
458 |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
459 text_to_lua = from_text; |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
460 text_to_xep54 = function (...) return to_xep54(from_text(...)); end; |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
461 |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
462 xep54_to_lua = from_xep54; |
317e142fe6f1
mod_vjud: Update util.vcard from verse
Kim Alvefur <zash@zash.se>
parents:
716
diff
changeset
|
463 xep54_to_text = function (...) return to_text(from_xep54(...)) end; |
716
dac33b8f190b
mod_vjud: Depends on vcard lib from verse, so add that.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
464 }; |