|
1 -- Implements XEP-0049: Private XML Storage |
|
2 |
1 local xmlns_private = "jabber:iq:private"; |
3 local xmlns_private = "jabber:iq:private"; |
2 |
4 |
3 function verse.plugins.private(stream) |
5 function verse.plugins.private(stream) |
4 function stream:private_set(name, xmlns, data, callback) |
6 function stream:private_set(name, xmlns, data, callback) |
5 local iq = verse.iq({ type = "set" }) |
7 local iq = verse.iq({ type = "set" }) |
6 :tag("query", { xmlns = xmlns_private }) |
8 :tag("query", { xmlns = xmlns_private }); |
7 :tag(name, { xmlns = xmlns }); |
9 if data then |
8 if data then iq:add_child(data); end |
10 if data.name == name and data.attr and data.attr.xmlns == xmlns then |
9 self:send_iq(iq, function () callback(); end); |
11 iq:add_child(data); |
|
12 else |
|
13 iq:tag(name, { xmlns = xmlns }) |
|
14 :add_child(data); |
|
15 end |
|
16 end |
|
17 self:send_iq(iq, callback); |
10 end |
18 end |
11 |
19 |
12 function stream:private_get(name, xmlns, callback) |
20 function stream:private_get(name, xmlns, callback) |
13 self:send_iq(verse.iq({type="get"}) |
21 self:send_iq(verse.iq({type="get"}) |
14 :tag("query", { xmlns = xmlns_private }) |
22 :tag("query", { xmlns = xmlns_private }) |