From cc6d427f216a5ebe16c8c87d60b91d3b0de29949 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Mon, 21 May 2018 00:44:37 +0200 Subject: mod_pubsub: Add support for generation of a plain text from Atom payloads See https://xmpp.org/extensions/xep-0060.html#impl-body --- plugins/mod_pubsub/mod_pubsub.lua | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'plugins/mod_pubsub/mod_pubsub.lua') diff --git a/plugins/mod_pubsub/mod_pubsub.lua b/plugins/mod_pubsub/mod_pubsub.lua index 74995a2b..707f2f8e 100644 --- a/plugins/mod_pubsub/mod_pubsub.lua +++ b/plugins/mod_pubsub/mod_pubsub.lua @@ -57,6 +57,26 @@ function simple_broadcast(kind, node, jids, item, actor, node_obj) :tag(kind, { node = node }) :add_child(item); + -- Compose a sensible textual representation of at least Atom payloads + if node_obj and node_obj.config.include_body 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"); + if not summary and title then + local author = payload:find("author/name#"); + summary = title; + if author then + summary = author .. " posted " .. summary; + end + end + if summary then + message:body(summary); + end + end + end + module:broadcast(jids, message, pairs); end -- cgit v1.2.3