Comparison

plugins/pubsub.lua @ 283:39ce7535887c

plugins.pubsub: Add a local variable to save some table lookups
author Kim Alvefur <zash@zash.se>
date Mon, 05 Mar 2012 20:18:54 +0100
parent 272:e1833e9bd25b
child 332:6ecf44918156
comparison
equal deleted inserted replaced
282:52b971d9ebc3 283:39ce7535887c
12 local pubsub_mt = { __index = pubsub }; 12 local pubsub_mt = { __index = pubsub };
13 13
14 function verse.plugins.pubsub(stream) 14 function verse.plugins.pubsub(stream)
15 stream.pubsub = setmetatable({ stream = stream }, pubsub_mt); 15 stream.pubsub = setmetatable({ stream = stream }, pubsub_mt);
16 stream:hook("message", function (message) 16 stream:hook("message", function (message)
17 local m_from = message.attr.from;
17 for pubsub_event in message:childtags("event", xmlns_pubsub_event) do 18 for pubsub_event in message:childtags("event", xmlns_pubsub_event) do
18 local items = pubsub_event:get_child("items"); 19 local items = pubsub_event:get_child("items");
19 if items then 20 if items then
20 local node = items.attr.node; 21 local node = items.attr.node;
21 for item in items:childtags("item") do 22 for item in items:childtags("item") do
22 stream:event("pubsub/event", { 23 stream:event("pubsub/event", {
23 from = message.attr.from; 24 from = m_from;
24 node = node; 25 node = node;
25 item = item; 26 item = item;
26 }); 27 });
27 end 28 end
28 end 29 end
163 164
164 -- <configure/> and <default/> rolled into one 165 -- <configure/> and <default/> rolled into one
165 function pubsub_node:configure(config, callback) 166 function pubsub_node:configure(config, callback)
166 if config ~= nil then 167 if config ~= nil then
167 error("Not implemented yet."); 168 error("Not implemented yet.");
168 -- if config == true then 169 --[[
170 if config == true then
171 self.stream:send_iq(pubsub_iq("get", self.service, nil, "configure", self.node)
172 , function(reply)
173 local form = reply:get_child("pubsub"):get_child("configure"):get_cild("x");
174 local config = callback(require"util.dataforms".something(form))
175 self.stream:send_iq(pubsub_iq("set", config, ...))
176 end);
177 end
178 --]]
169 -- fetch form and pass it to the callback 179 -- fetch form and pass it to the callback
170 -- which would process it and pass it back 180 -- which would process it and pass it back
171 -- and then we submit it 181 -- and then we submit it
172 -- elseif type(config) == "table" then 182 -- elseif type(config) == "table" then
173 -- it's a form or stanza that we submit 183 -- it's a form or stanza that we submit