Software /
code /
verse
File
plugins/vcard.lua @ 506:3610196c5e83 default tip
Merge with Zash.
author | Trần H. Trung <xmpp:trần.h.trung@trung.fun> |
---|---|
date | Sat, 08 Jul 2023 02:17:52 +0700 |
parent | 497:eb86e3751978 |
line wrap: on
line source
local verse = require "verse"; local vcard = require "verse.util.vcard"; local xmlns_vcard = "vcard-temp"; 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 vCard = stanza:get_child("vCard", xmlns_vcard); if stanza.attr.type == "result" and vCard then vCard = vcard.from_xep54(vCard) callback(vCard) 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.to_xep54(vcard.from_text(aCard)[1]); elseif type(aCard) == "table" then xCard = vcard.to_xep54(aCard); 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