# HG changeset patch # User marc0s # Date 1550069578 -3600 # Node ID 2aaf93d2b219aaa7edefe56f4b87eb48ebd2e52f # Parent d73ed7975d82beb509ab038750d07e322f01e7fa 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. diff -r d73ed7975d82 -r 2aaf93d2b219 mod_muc_mam_hints/README.markdown --- /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", +} +``` diff -r d73ed7975d82 -r 2aaf93d2b219 mod_muc_mam_hints/mod_muc_mam_hints.lua --- /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)