Mercurial > prosody-modules
view mod_spam_reporting/mod_spam_reporting.lua @ 5585:5b316088bef5
mod_rest: Use logger of HTTP request in trunk
In Prosody trunk rev c975dafa4303 each HTTP request gained its own log
sink, to make it easy to log things related to each request and group
those messages. Especially where async is used, spreading the request
and response apart as mod_rest does with iq stanzas, this grouped
logging should help find related messages.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 07 Jul 2023 00:10:37 +0200 |
parents | a357c3e3bd32 |
children |
line wrap: on
line source
-- XEP-0377: Spam Reporting for Prosody -- Copyright (C) 2016-2021 Kim Alvefur -- -- This file is MIT/X11 licensed. local jid_prep = require "util.jid".prep; module:depends("blocklist"); module:add_feature("urn:xmpp:reporting:0"); module:add_feature("urn:xmpp:reporting:reason:spam:0"); module:add_feature("urn:xmpp:reporting:reason:abuse:0"); module:add_feature("urn:xmpp:reporting:1"); module:hook("iq-set/self/urn:xmpp:blocking:block", function (event) for item in event.stanza.tags[1]:childtags("item") do local report = item:get_child("report", "urn:xmpp:reporting:0") or item:get_child("report", "urn:xmpp:reporting:1"); local jid = jid_prep(item.attr.jid); if report and jid then local report_type, reason; if report.attr.xmlns == "urn:xmpp:reporting:0" then report_type = report:get_child("spam") and "spam" or report:get_child("abuse") and "abuse" or "unknown"; reason = report:get_child_text("text"); elseif report.attr.xmlns == "urn:xmpp:reporting:1" then report_type = "unknown"; if report.attr.reason == "urn:xmpp:reporting:abuse" then report_type = "abuse"; end if report.attr.reason == "urn:xmpp:reporting:spam" then report_type = "spam"; end reason = report:get_child_text("text"); end if report_type then module:log("warn", "Received report of %s from JID '%s', %s", report_type, jid, reason or "no reason given"); module:fire_event(module.name.."/"..report_type.."-report", { origin = event.origin, stanza = event.stanza, jid = jid, item = item, report = report, reason = reason, }); end end end end, 1);