changeset 4006:fcea7cf91702

mod_csi_simple_compat: Module for Prosody 0.11 that adds a setting available from Prosody 0.12
author Kim Alvefur <zash@zash.se>
date Fri, 01 May 2020 00:54:32 +0200
parents fe6cb37ac180
children ec9011df2dc6
files mod_csi_simple_compat/README.markdown mod_csi_simple_compat/mod_csi_simple_compat.lua
diffstat 2 files changed, 45 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mod_csi_simple_compat/README.markdown	Fri May 01 00:54:32 2020 +0200
@@ -0,0 +1,31 @@
+# About
+
+This module allows using the [mod_csi_simple][doc:modules:mod_csi_simple]
+setting `csi_important_payloads` (added in trunk/0.12) in Prosody 0.11.x.
+
+# Config
+
+```
+modules_enabled = {
+    -- other modules etc
+    "csi_simple",
+    "csi_simple_compat",
+}
+
+csi_important_payloads = {
+    -- Anything in this namespace:
+    "{urn:example:important-namespace}",
+    -- Specific element name and namespace:
+    "{urn:example:xmpp:priority}super-important",
+}
+```
+
+# Example
+
+``` lua
+csi_important_payloads = {
+    -- XEP-0353: Jingle Message Initiation
+    "{urn:xmpp:jingle-message:0}",
+}
+```
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mod_csi_simple_compat/mod_csi_simple_compat.lua	Fri May 01 00:54:32 2020 +0200
@@ -0,0 +1,14 @@
+local st = require "util.stanza";
+
+local important_payloads = module:get_option_set("csi_important_payloads", { });
+
+module:hook("csi-is-stanza-important", function (event)
+	local stanza = event.stanza;
+	if st.is_stanza(stanza) then
+		for important in important_payloads do
+			if stanza:find(important) then
+				return true;
+			end
+		end
+	end
+end);