Software /
code /
prosody
Changeset
8814:07197f29e2b8
mod_pubsub: Make the 'type' attribute on broadcast messages configurable
This adds support for the pubsub#notification_type field in the node
config form.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 21 May 2018 00:35:45 +0200 |
parents | 8813:2c55fccb0c0c |
children | 8815:5974c9da1391 |
files | plugins/mod_pubsub/mod_pubsub.lua plugins/mod_pubsub/pubsub.lib.lua |
diffstat | 2 files changed, 15 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/mod_pubsub/mod_pubsub.lua Mon May 21 00:35:00 2018 +0200 +++ b/plugins/mod_pubsub/mod_pubsub.lua Mon May 21 00:35:45 2018 +0200 @@ -41,7 +41,7 @@ end -function simple_broadcast(kind, node, jids, item, actor) +function simple_broadcast(kind, node, jids, item, actor, node_obj) if item then item = st.clone(item); item.attr.xmlns = nil; -- Clear the pubsub namespace @@ -51,10 +51,12 @@ end local id = new_id(); - local message = st.message({ from = module.host, type = "headline", id = id }) + local msg_type = node_obj and node_obj.config.message_type or "headline"; + local message = st.message({ from = module.host, type = msg_type, id = id }) :tag("event", { xmlns = xmlns_pubsub_event }) :tag(kind, { node = node }) :add_child(item); + module:broadcast(jids, message, pairs); end
--- a/plugins/mod_pubsub/pubsub.lib.lua Mon May 21 00:35:00 2018 +0200 +++ b/plugins/mod_pubsub/pubsub.lib.lua Mon May 21 00:35:45 2018 +0200 @@ -52,6 +52,14 @@ name = "pubsub#persist_items"; label = "Persist items to storage"; }; + { + type = "list-single"; + name = "pubsub#notification_type"; + label = "Specify the delivery style for notifications"; + options = { + { label = "Messages of type normal", value = "normal" }, + { label = "Messages of type headline", value = "headline", default = true }, + }; }; local service_method_feature_map = { @@ -187,6 +195,7 @@ config = { ["max_items"] = tonumber(form_data["pubsub#max_items"]); ["persist_items"] = form_data["pubsub#persist_items"]; + ["notification_type"] = form_data["pubsub#notification_type"]; }; end if node then @@ -373,7 +382,8 @@ local node_config = node_obj.config; local pubsub_form_data = { ["pubsub#max_items"] = tostring(node_config["max_items"]); - ["pubsub#persist_items"] = node_config["persist_items"] + ["pubsub#persist_items"] = node_config["persist_items"]; + ["pubsub#notification_type"] = node_config["notification_type"]; } local reply = st.reply(stanza) :tag("pubsub", { xmlns = xmlns_pubsub_owner })