plugins/vcard.lua

Mon, 27 Aug 2012 00:13:47 +0200

author
Kim Alvefur <zash@zash.se>
date
Mon, 27 Aug 2012 00:13:47 +0200
changeset 312
f374daa3db4d
parent 250
a5ac643a7fd6
child 313
d0d378f15d16
permissions
-rw-r--r--

plugins.vcard: Update for never util.vcard

250
a5ac643a7fd6 added local verse var to all plugins
mva <mva@mva.name>
parents: 228
diff changeset
1 local verse = require "verse";
a5ac643a7fd6 added local verse var to all plugins
mva <mva@mva.name>
parents: 228
diff changeset
2 local vcard = require "util.vcard";
a5ac643a7fd6 added local verse var to all plugins
mva <mva@mva.name>
parents: 228
diff changeset
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
c5a4f82e2fd6 plugins.vcard: Use util.vcard
Kim Alvefur <zash@zash.se>
parents: 195
diff changeset
9 :tag("vCard", {xmlns=xmlns_vcard}), callback and function(stanza)
c5a4f82e2fd6 plugins.vcard: Use util.vcard
Kim Alvefur <zash@zash.se>
parents: 195
diff changeset
10 local lCard, xCard;
312
f374daa3db4d plugins.vcard: Update for never util.vcard
Kim Alvefur <zash@zash.se>
parents: 250
diff changeset
11 vCard = stanza:get_child("vCard", xmlns_vcard);
f374daa3db4d plugins.vcard: Update for never util.vcard
Kim Alvefur <zash@zash.se>
parents: 250
diff changeset
12 if stanza.attr.type == "result" and vCard then
f374daa3db4d plugins.vcard: Update for never util.vcard
Kim Alvefur <zash@zash.se>
parents: 250
diff changeset
13 vCard = vcard.from_xep54(xCard)
f374daa3db4d plugins.vcard: Update for never util.vcard
Kim Alvefur <zash@zash.se>
parents: 250
diff changeset
14 callback(vCard)
228
c5a4f82e2fd6 plugins.vcard: Use util.vcard
Kim Alvefur <zash@zash.se>
parents: 195
diff changeset
15 else
c5a4f82e2fd6 plugins.vcard: Use util.vcard
Kim Alvefur <zash@zash.se>
parents: 195
diff changeset
16 callback(false) -- FIXME add error
c5a4f82e2fd6 plugins.vcard: Use util.vcard
Kim Alvefur <zash@zash.se>
parents: 195
diff changeset
17 end
c5a4f82e2fd6 plugins.vcard: Use util.vcard
Kim Alvefur <zash@zash.se>
parents: 195
diff changeset
18 end or nil);
c5a4f82e2fd6 plugins.vcard: Use util.vcard
Kim Alvefur <zash@zash.se>
parents: 195
diff changeset
19 end
195
dc61684e8dbf plugins.vcard: Get and set vcard-temp info.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20
228
c5a4f82e2fd6 plugins.vcard: Use util.vcard
Kim Alvefur <zash@zash.se>
parents: 195
diff changeset
21 function stream:set_vcard(aCard, callback)
c5a4f82e2fd6 plugins.vcard: Use util.vcard
Kim Alvefur <zash@zash.se>
parents: 195
diff changeset
22 local xCard;
c5a4f82e2fd6 plugins.vcard: Use util.vcard
Kim Alvefur <zash@zash.se>
parents: 195
diff changeset
23 if type(aCard) == "table" and aCard.name then
c5a4f82e2fd6 plugins.vcard: Use util.vcard
Kim Alvefur <zash@zash.se>
parents: 195
diff changeset
24 xCard = aCard;
c5a4f82e2fd6 plugins.vcard: Use util.vcard
Kim Alvefur <zash@zash.se>
parents: 195
diff changeset
25 elseif type(aCard) == "string" then
312
f374daa3db4d plugins.vcard: Update for never util.vcard
Kim Alvefur <zash@zash.se>
parents: 250
diff changeset
26 xCard = vcard.from_text(aCard)[1];
228
c5a4f82e2fd6 plugins.vcard: Use util.vcard
Kim Alvefur <zash@zash.se>
parents: 195
diff changeset
27 elseif type(aCard) == "table" then
312
f374daa3db4d plugins.vcard: Update for never util.vcard
Kim Alvefur <zash@zash.se>
parents: 250
diff changeset
28 xCard = vcard.to_xep54(aCard);
228
c5a4f82e2fd6 plugins.vcard: Use util.vcard
Kim Alvefur <zash@zash.se>
parents: 195
diff changeset
29 error("Converting a table to vCard not implemented")
c5a4f82e2fd6 plugins.vcard: Use util.vcard
Kim Alvefur <zash@zash.se>
parents: 195
diff changeset
30 end
c5a4f82e2fd6 plugins.vcard: Use util.vcard
Kim Alvefur <zash@zash.se>
parents: 195
diff changeset
31 if not xCard then return false end
c5a4f82e2fd6 plugins.vcard: Use util.vcard
Kim Alvefur <zash@zash.se>
parents: 195
diff changeset
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
c5a4f82e2fd6 plugins.vcard: Use util.vcard
Kim Alvefur <zash@zash.se>
parents: 195
diff changeset
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

mercurial