Mercurial > prosody-modules
changeset 2372:b1b120e654ff
mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 17 Nov 2016 23:13:59 +0100 (2016-11-17) |
parents | b41957bf4fd3 |
children | 704e4845267b |
files | mod_measure_message_length/README.markdown mod_measure_message_length/mod_measure_message_length.lua |
diffstat | 2 files changed, 22 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_measure_message_length/README.markdown Thu Nov 17 23:13:59 2016 +0100 @@ -0,0 +1,1 @@ +Simple module that collects statistics on message length in bytes, word count and line count.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_measure_message_length/mod_measure_message_length.lua Thu Nov 17 23:13:59 2016 +0100 @@ -0,0 +1,21 @@ +local bytes = module:measure("bytes", "sizes"); +local lines = module:measure("lines", "count"); +local words = module:measure("words", "count"); + +local function measure_length(event) + local body = event.stanza:get_child_text("body"); + if body then + bytes(#body); + lines(select(2, body:gsub("[^\n]+",""))); + words(select(2, body:gsub("%S+",""))); + end +end + +module:hook("message/full", measure_length); +module:hook("message/bare", measure_length); +module:hook("message/host", measure_length); + +module:hook("pre-message/full", measure_length); +module:hook("pre-message/bare", measure_length); +module:hook("pre-message/host", measure_length); +