Changeset

9039:0124e5ec1556

mod_pubsub: Move include_body option into subscription options
author Kim Alvefur <zash@zash.se>
date Sat, 14 Jul 2018 19:34:10 +0200
parents 9038:fd053fcaf9bc
children 9040:e993fad0cc62
files plugins/mod_pubsub/mod_pubsub.lua plugins/mod_pubsub/pubsub.lib.lua
diffstat 2 files changed, 17 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/mod_pubsub/mod_pubsub.lua	Sat Jul 14 18:49:12 2018 +0200
+++ b/plugins/mod_pubsub/mod_pubsub.lua	Sat Jul 14 19:34:10 2018 +0200
@@ -51,13 +51,14 @@
 		message:add_child(item);
 	end
 
+	local summary;
 	-- Compose a sensible textual representation of at least Atom payloads
-	if node_obj and item and node_obj.config.include_body and item.tags[1] then
+	if item and item.tags[1] then
 		local payload = item.tags[1];
 		if payload.attr.xmlns == "http://www.w3.org/2005/Atom" then
 			message:reset();
 			local title = payload:get_child_text("title");
-			local summary = payload:get_child_text("summary");
+			summary = payload:get_child_text("summary");
 			if not summary and title then
 				local author = payload:find("author/name#");
 				summary = title;
@@ -65,13 +66,17 @@
 					summary = author .. " posted " .. summary;
 				end
 			end
-			if summary then
-				message:body(summary);
-			end
 		end
 	end
 
-	module:broadcast(jids, message, pairs);
+	for jid, options in pairs(jids) do
+		local new_stanza = st.clone(message);
+		if type(options) == "table" and options["pubsub#include_body"] then
+			new_stanza:body(summary);
+		end
+		new_stanza.attr.to = jid;
+		module:send(new_stanza);
+	end
 end
 
 function is_item_stanza(item)
--- a/plugins/mod_pubsub/pubsub.lib.lua	Sat Jul 14 18:49:12 2018 +0200
+++ b/plugins/mod_pubsub/pubsub.lib.lua	Sat Jul 14 19:34:10 2018 +0200
@@ -46,7 +46,6 @@
 		["pubsub#max_items"] = tostring(node_config["max_items"]);
 		["pubsub#persist_items"] = node_config["persist_items"];
 		["pubsub#notification_type"] = node_config["notification_type"];
-		["pubsub#include_body"] = node_config["include_body"];
 	}
 end
 
@@ -57,7 +56,6 @@
 		["max_items"] = tonumber(config["pubsub#max_items"]);
 		["persist_items"] = config["pubsub#persist_items"];
 		["notification_type"] = config["pubsub#notification_type"];
-		["include_body"] = config["pubsub#include_body"];
 	}
 end
 
@@ -88,11 +86,6 @@
 		label = "Persist items to storage";
 	};
 	{
-		type = "boolean";
-		name = "pubsub#include_body";
-		label = "Receive message body in addition to payload?";
-	};
-	{
 		type = "list-single";
 		name = "pubsub#notification_type";
 		label = "Specify the delivery style for notifications";
@@ -108,8 +101,12 @@
 		type = "hidden";
 		name = "FORM_TYPE";
 		value = "http://jabber.org/protocol/pubsub#subscribe_options";
-	}
-	-- No options yet. File a feature request ;)
+	};
+	{
+		type = "boolean";
+		name = "pubsub#include_body";
+		label = "Receive message body in addition to payload?";
+	};
 };
 
 local node_metadata_form = dataform {