# HG changeset patch # User Matthew Wild # Date 1291349478 0 # Node ID 88cc513e81c863e22429716d325d1ae59bbe47a3 # Parent 068176069dfacccfb6196a50cacccd961f122e67 plugins.pubsub: Fire pubsub/event on incoming pubsub notifications diff -r 068176069dfa -r 88cc513e81c8 plugins/pubsub.lua --- a/plugins/pubsub.lua Tue Nov 30 13:23:24 2010 +0000 +++ b/plugins/pubsub.lua Fri Dec 03 04:11:18 2010 +0000 @@ -9,6 +9,21 @@ function verse.plugins.pubsub(stream) stream.pubsub = setmetatable({ stream = stream }, pubsub_mt); + stream:hook("message", function (message) + for pubsub_event in message:matching_tags("event", xmlns_pubsub_event) do + local items = pubsub_event:get_child("items"); + if items then + local node = items.attr.node; + for item in items:matching_tags("item") do + stream:event("pubsub/event", { + from = message.attr.from; + node = node; + item = item; + }); + end + end + end + end); end function pubsub:subscribe(server, node, jid, callback)