Software /
code /
prosody-modules
File
mod_measure_message_e2ee/mod_measure_message_e2ee.lua @ 3532:85c357b69eec
mod_csi_muc_priorities: Reduce importance of group chat messages
This helps if you are in more noisy public channels than small private
group chats.
The short term plan is to give users the ability to set MUC JIDs as
either high or low priority and use that. Long term it would be great to
be able to automatically classify MUCs as public channels vs private
group chats.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 01 Apr 2019 00:15:13 +0200 |
parent | 3370:c414a7e884b3 |
child | 3782:70e5bab388d8 |
line wrap: on
line source
module:set_global(); local count_message = module:measure("message", "rate"); local count_plain = module:measure("plain", "rate"); local count_openpgp = module:measure("openpgp", "rate"); local count_otr = module:measure("otr", "rate"); local count_ox = module:measure("ox", "rate"); local count_omemo = module:measure("omemo", "rate"); local count_encrypted = module:measure("encrypted", "rate"); local function message_handler(event) local origin, stanza = event.origin, event.stanza; -- This counts every message, even those with no body-like content. count_message(); -- Annotates that a message is encrypted, using any of the following methods. if stanza:get_child("encryption", "urn:xmpp:eme:0") then count_encrypted(); end if stanza:get_child("openpgp", "urn:xmpp:openpgp:0") then count_ox(); return; end if stanza:get_child("encrypted", "eu.siacs.conversations.axolotl") then count_omemo(); return; end if stanza:get_child("x", "jabber:x:encrypted") then count_openpgp(); return; end local body = stanza:get_child_text("body"); if body then if body:sub(1,4) == "?OTR" then count_otr(); return; end count_plain(); end end function module.add_host(host_module) module:log("debug", "Loaded on host %s", host_module); host_module:hook("pre-message/host", message_handler, 2); host_module:hook("pre-message/bare", message_handler, 2); host_module:hook("pre-message/full", message_handler, 2); end