Mercurial > prosody-modules
view mod_filter_words/mod_filter_words.lua @ 4473:3b50a9a75fb6
mod_rest: Roundtrip disco and items when string or boolean is used
E.g. {disco:true} turns to <query/> and back to {disco:true}, same with
{items:true}. Similarily, {disco:"node"}, {items:"node"} turn into
<query node="node"/> and back.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 26 Feb 2021 22:05:25 +0100 |
parents | 677fc0203da0 |
children |
line wrap: on
line source
local filters = require "util.filters"; local replacements = module:get_option("filter_words", {}); if not replacements then module:log("warn", "No 'filter_words' option set, filters inactive"); return end function filter_stanza(stanza) if stanza.name == "message" then local body = stanza:get_child("body"); if body then body[1] = body[1]:gsub("%a+", replacements); end end return stanza; end function filter_session(session) filters.add_filter(session, "stanzas/in", filter_stanza); end function module.load() if module.reloading then module:log("warn", "RELOADING!!!"); end filters.add_filter_hook(filter_session); end function module.unload() filters.remove_filter_hook(filter_session); end