changeset 3463:2aaf93d2b219

mod_muc_mam_hints: Respect XEP-0334 hints in MUC messages Hook muc-message-is-historic and check if Message Processing Hints are present to compute the return value.
author marc0s <marcos@tenak.net>
date Wed, 13 Feb 2019 15:52:58 +0100 (2019-02-13)
parents d73ed7975d82
children 13b394b0db82
files mod_muc_mam_hints/README.markdown mod_muc_mam_hints/mod_muc_mam_hints.lua
diffstat 2 files changed, 47 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mod_muc_mam_hints/README.markdown	Wed Feb 13 15:52:58 2019 +0100
@@ -0,0 +1,28 @@
+---
+labels:
+- 'Stage-Alpha'
+summary: 'Support XEP-0334: Message Processing Hints for MUC messages'
+...
+
+Introduction
+============
+
+This module will check for MUC messages with XEP-0334 Message
+Processing Hints tags to qualify those messages as "historic"
+for later MAM archiving or not.
+
+Usage
+=====
+
+First copy the module to the prosody plugins directory.
+
+Then add "muc\_mam\_hints" to your modules\_enabled list in your MUC
+component:
+
+``` {.lua}
+Component "conference.example.org" "muc"
+modules_enabled = {
+  "muc_mam",
+  "muc_mam_hints",
+}
+```
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mod_muc_mam_hints/mod_muc_mam_hints.lua	Wed Feb 13 15:52:58 2019 +0100
@@ -0,0 +1,19 @@
+--
+-- A module to indicate if a MUC message qualifies as historic based on XEP-0334 hints
+--
+
+module:depends"muc_mam"
+
+module:log("debug", "Module loaded");
+
+module:hook("muc-message-is-historic", function (event)
+  if (event.stanza:get_child("no-store", "urn:xmpp:hints") or
+    event.stanza:get_child("no-permanent-store", "urn:xmpp:hints")) then
+      module:log("debug", "Not archiving stanza: %s (urn:xmpp:hints)", event.stanza)
+    return false
+  elseif event.stanza:get_child("store", "urn:xmpp:hints") then
+    return true
+  else
+    return nil
+  end
+end)