# HG changeset patch # User Kim Alvefur # Date 1479420839 -3600 # Node ID b1b120e654ff5029972bdb2c2082831ed2f8d0ba # Parent b41957bf4fd3ccf5a98d5a6a7a9eeb9f99645adf mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages diff -r b41957bf4fd3 -r b1b120e654ff mod_measure_message_length/README.markdown --- /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. diff -r b41957bf4fd3 -r b1b120e654ff mod_measure_message_length/mod_measure_message_length.lua --- /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); +