Sun, 27 Nov 2011 23:00:15 +0000
verse: Add default log handler for errors
195
dc61684e8dbf
plugins.vcard: Get and set vcard-temp info.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 | local xmlns_vcard = "vcard-temp"; |
228 | 2 | local vcard = require "util.vcard"; |
195
dc61684e8dbf
plugins.vcard: Get and set vcard-temp info.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 | |
dc61684e8dbf
plugins.vcard: Get and set vcard-temp info.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 | function verse.plugins.vcard(stream) |
dc61684e8dbf
plugins.vcard: Get and set vcard-temp info.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 | function stream:get_vcard(jid, callback) --jid = nil for self |
dc61684e8dbf
plugins.vcard: Get and set vcard-temp info.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 | stream:send_iq(verse.iq({to = jid, type="get"}) |
228 | 7 | :tag("vCard", {xmlns=xmlns_vcard}), callback and function(stanza) |
8 | local lCard, xCard; | |
9 | xCard = stanza:get_child("vCard", xmlns_vcard); | |
10 | if stanza.attr.type == "result" and xCard then | |
11 | lCard = vcard.xep54_to_lua(xCard) | |
12 | vCard = vcard.xep54_to_text(xCard) | |
13 | -- FIXME This is only until util.vcard.lua_to_text() is implemented | |
14 | lCard._text = vCard; | |
15 | callback(lCard) | |
16 | else | |
17 | callback(false) -- FIXME add error | |
18 | end | |
19 | end or nil); | |
20 | end | |
195
dc61684e8dbf
plugins.vcard: Get and set vcard-temp info.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
21 | |
228 | 22 | function stream:set_vcard(aCard, callback) |
23 | local xCard; | |
24 | if type(aCard) == "table" and aCard.name then | |
25 | xCard = aCard; | |
26 | elseif type(aCard) == "string" then | |
27 | xCard = vcard.text_to_xep54(aCard)[1]; | |
28 | elseif type(aCard) == "table" then | |
29 | error("Converting a table to vCard not implemented") | |
30 | end | |
31 | if not xCard then return false end | |
32 | stream:debug("setting vcard to %s", tostring(xCard)); | |
195
dc61684e8dbf
plugins.vcard: Get and set vcard-temp info.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
33 | stream:send_iq(verse.iq({type="set"}) |
228 | 34 | :add_child(xCard), callback); |
195
dc61684e8dbf
plugins.vcard: Get and set vcard-temp info.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
35 | end |
dc61684e8dbf
plugins.vcard: Get and set vcard-temp info.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
36 | end |