# HG changeset patch # User Matthew Wild # Date 1385953668 0 # Node ID 4d1226220e58f3a03e336df57e889b8c44e969b0 # Parent 2380a5d714480a99cc3f8928abadfdb8037ceaea mod_pubsub_eventsource: Publish only the content of known payload types (JSON, 'data' [from MQTT]) diff -r 2380a5d71448 -r 4d1226220e58 mod_pubsub_eventsource/mod_pubsub_eventsource.lua --- a/mod_pubsub_eventsource/mod_pubsub_eventsource.lua Mon Dec 02 03:06:10 2013 +0000 +++ b/mod_pubsub_eventsource/mod_pubsub_eventsource.lua Mon Dec 02 03:07:48 2013 +0000 @@ -45,7 +45,11 @@ module:log("debug", "Item published: %q", event.node); local node = event.node; local clientlist = streams[node]; - local data = "data: "..tostring(event.item):gsub("\n", "\ndata: \n").."\n\n"; + local item = event.item; + if (item.name == "json" and item.attr.xmlns == "urn:xmpp:json:0") or (item.name == "data" and item.attr.xmlns == "https://prosody.im/protocol/data") then + item = item[1]; + end + local data = "data: "..tostring(item):gsub("\n", "\ndata: \n").."\n\n"; if not clientlist then module:log("debug", "No clients for %q", node); return; end for response, conn in pairs(clientlist) do conn:write(data);