Fri, 07 Apr 2017 19:39:59 +0200
component: Import sha1 via util.hashes
250 | 1 | local verse = require "verse"; |
2 | local vcard = require "util.vcard"; | |
3 | ||
195
dc61684e8dbf
plugins.vcard: Get and set vcard-temp info.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 | local xmlns_vcard = "vcard-temp"; |
dc61684e8dbf
plugins.vcard: Get and set vcard-temp info.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 | |
dc61684e8dbf
plugins.vcard: Get and set vcard-temp info.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 | function verse.plugins.vcard(stream) |
dc61684e8dbf
plugins.vcard: Get and set vcard-temp info.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 | 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
|
8 | stream:send_iq(verse.iq({to = jid, type="get"}) |
228 | 9 | :tag("vCard", {xmlns=xmlns_vcard}), callback and function(stanza) |
395 | 10 | local vCard = stanza:get_child("vCard", xmlns_vcard); |
312
f374daa3db4d
plugins.vcard: Update for never util.vcard
Kim Alvefur <zash@zash.se>
parents:
250
diff
changeset
|
11 | if stanza.attr.type == "result" and vCard then |
313
d0d378f15d16
plugins.vcard: Fix previous commit
Kim Alvefur <zash@zash.se>
parents:
312
diff
changeset
|
12 | vCard = vcard.from_xep54(vCard) |
312
f374daa3db4d
plugins.vcard: Update for never util.vcard
Kim Alvefur <zash@zash.se>
parents:
250
diff
changeset
|
13 | callback(vCard) |
228 | 14 | else |
15 | callback(false) -- FIXME add error | |
16 | end | |
17 | end or nil); | |
18 | end | |
195
dc61684e8dbf
plugins.vcard: Get and set vcard-temp info.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 | |
228 | 20 | function stream:set_vcard(aCard, callback) |
21 | local xCard; | |
22 | if type(aCard) == "table" and aCard.name then | |
23 | xCard = aCard; | |
24 | elseif type(aCard) == "string" then | |
316
03ad51d96858
plugins.vcard: Convert textual vCards to XEP-54 format
Kim Alvefur <zash@zash.se>
parents:
313
diff
changeset
|
25 | xCard = vcard.to_xep54(vcard.from_text(aCard)[1]); |
228 | 26 | elseif type(aCard) == "table" then |
312
f374daa3db4d
plugins.vcard: Update for never util.vcard
Kim Alvefur <zash@zash.se>
parents:
250
diff
changeset
|
27 | xCard = vcard.to_xep54(aCard); |
228 | 28 | error("Converting a table to vCard not implemented") |
29 | end | |
30 | if not xCard then return false end | |
31 | 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
|
32 | stream:send_iq(verse.iq({type="set"}) |
228 | 33 | :add_child(xCard), callback); |
195
dc61684e8dbf
plugins.vcard: Get and set vcard-temp info.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
34 | end |
dc61684e8dbf
plugins.vcard: Get and set vcard-temp info.
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
35 | end |