plugins/private.lua

Tue, 09 Nov 2010 19:57:52 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Tue, 09 Nov 2010 19:57:52 +0000
changeset 150
728cc7f2f0c2
parent 149
f5c524412939
child 155
9c9af7a196ed
permissions
-rw-r--r--

verse.component: Namespacing fixes

local xmlns_private = "jabber:iq:private";

function verse.plugins.private(stream)
	function stream:private_set(name, xmlns, data, callback)
		local iq = verse.iq({ type = "set" })
			:tag("query", { xmlns = xmlns_private })
				:tag(name, { xmlns = xmlns });
		if data then iq:add_child(data); end
		self:send_iq(iq, function () callback(); end);
	end
	
	function stream:private_get(name, xmlns, callback)
		self:send_iq(verse.iq({type="get"})
			:tag("query", { xmlns = xmlns_private })
				:tag(name, { xmlns = xmlns }),
			function (reply)
				if reply.attr.type == "result" then
					local query = reply:get_child("query", xmlns_private);
					local result = query:get_child(name, xmlns);
					callback(result);
				end
			end);
	end
end

mercurial