Software /
code /
prosody-modules
File
mod_spam_reporting/mod_spam_reporting.lua @ 4300:3f3b672b7616
mod_vcard_muc: Pass room object around instead of JID, hopefully fixing traceback
More efficient to pass the object around instead of using the JID
and looking up the object when needed.
It seems in some (undetermined) cases get_room_from_jid(room.jid) is nil.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Tue, 15 Dec 2020 10:49:11 +0000 |
parent | 2298:a59671b3dd43 |
child | 4612:fe24bda72838 |
line wrap: on
line source
-- XEP-0377: Spam Reporting for Prosody -- Copyright (C) -2016 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: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"); local jid = jid_prep(item.attr.jid); if report and jid then local type = report:get_child("spam") and "spam" or report:get_child("abuse") and "abuse" or "unknown"; local reason = report:get_child_text("text") or "no reason given"; module:log("warn", "Received report of %s from JID '%s', %s", type, jid, reason); module:fire_event(module.name.."/"..type.."-report", { origin = event.origin, stanza = event.stanza, jid = jid, item = item, report = report, reason = reason, }); end end end, 1);