Software /
code /
verse
File
plugins/vcard.lua @ 230:44a6da432e7e
doc/example_pubsub.lua: Example plugins.pubsub usage
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 06 Nov 2011 21:09:07 +0100 |
parent | 228:c5a4f82e2fd6 |
child | 250:a5ac643a7fd6 |
line wrap: on
line source
local xmlns_vcard = "vcard-temp"; local vcard = require "util.vcard"; function verse.plugins.vcard(stream) function stream:get_vcard(jid, callback) --jid = nil for self stream:send_iq(verse.iq({to = jid, type="get"}) :tag("vCard", {xmlns=xmlns_vcard}), callback and function(stanza) local lCard, xCard; xCard = stanza:get_child("vCard", xmlns_vcard); if stanza.attr.type == "result" and xCard then lCard = vcard.xep54_to_lua(xCard) vCard = vcard.xep54_to_text(xCard) -- FIXME This is only until util.vcard.lua_to_text() is implemented lCard._text = vCard; callback(lCard) else callback(false) -- FIXME add error end end or nil); end function stream:set_vcard(aCard, callback) local xCard; if type(aCard) == "table" and aCard.name then xCard = aCard; elseif type(aCard) == "string" then xCard = vcard.text_to_xep54(aCard)[1]; elseif type(aCard) == "table" then error("Converting a table to vCard not implemented") end if not xCard then return false end stream:debug("setting vcard to %s", tostring(xCard)); stream:send_iq(verse.iq({type="set"}) :add_child(xCard), callback); end end