Mercurial > prosody-modules
annotate mod_spam_reporting/mod_spam_reporting.lua @ 4362:116c88c28532
mod_http_admin_api: restructure group-related info in API
- Return the members of the group right in the get_group_by_id
call. This is an O(1) of extra work.
- Remove the groups attribute from get_user_by_name as that is
O(n) of work and rarely immediately needed.
The replacement for the group membership information in the user
is for now to use the group API and iterate; future work may fix
that.
author | Jonas Schäfer <jonas@wielicki.name> |
---|---|
date | Wed, 20 Jan 2021 15:30:29 +0100 |
parents | a59671b3dd43 |
children | fe24bda72838 |
rev | line source |
---|---|
2280
ebe360f59119
mod_spam_reporting: Add Copyright header
Kim Alvefur <zash@zash.se>
parents:
2279
diff
changeset
|
1 -- XEP-0377: Spam Reporting for Prosody |
ebe360f59119
mod_spam_reporting: Add Copyright header
Kim Alvefur <zash@zash.se>
parents:
2279
diff
changeset
|
2 -- Copyright (C) -2016 Kim Alvefur |
ebe360f59119
mod_spam_reporting: Add Copyright header
Kim Alvefur <zash@zash.se>
parents:
2279
diff
changeset
|
3 -- |
ebe360f59119
mod_spam_reporting: Add Copyright header
Kim Alvefur <zash@zash.se>
parents:
2279
diff
changeset
|
4 -- This file is MIT/X11 licensed. |
2266
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 |
2281
0899eeb0b3f7
mod_spam_reporting: Apply JID prepping
Kim Alvefur <zash@zash.se>
parents:
2280
diff
changeset
|
6 local jid_prep = require "util.jid".prep; |
0899eeb0b3f7
mod_spam_reporting: Apply JID prepping
Kim Alvefur <zash@zash.se>
parents:
2280
diff
changeset
|
7 |
2266
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 module:depends("blocklist"); |
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 |
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 module:add_feature("urn:xmpp:reporting:0"); |
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 module:add_feature("urn:xmpp:reporting:reason:spam:0"); |
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 module:add_feature("urn:xmpp:reporting:reason:abuse:0"); |
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 |
2275
7f228bf82fe5
mod_spam_reporting: Hook the blocking action, not blocklist fetching
Kim Alvefur <zash@zash.se>
parents:
2267
diff
changeset
|
14 module:hook("iq-set/self/urn:xmpp:blocking:block", function (event) |
2266
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 for item in event.stanza.tags[1]:childtags("item") do |
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 local report = item:get_child("report", "urn:xmpp:reporting:0"); |
2281
0899eeb0b3f7
mod_spam_reporting: Apply JID prepping
Kim Alvefur <zash@zash.se>
parents:
2280
diff
changeset
|
17 local jid = jid_prep(item.attr.jid); |
2276
1b12ccbbd9b2
mod_spam_reporting: Continue looking for spam reports even when one <item> does not have one
Kim Alvefur <zash@zash.se>
parents:
2275
diff
changeset
|
18 if report and jid then |
1b12ccbbd9b2
mod_spam_reporting: Continue looking for spam reports even when one <item> does not have one
Kim Alvefur <zash@zash.se>
parents:
2275
diff
changeset
|
19 local type = report:get_child("spam") and "spam" or |
1b12ccbbd9b2
mod_spam_reporting: Continue looking for spam reports even when one <item> does not have one
Kim Alvefur <zash@zash.se>
parents:
2275
diff
changeset
|
20 report:get_child("abuse") and "abuse" or |
1b12ccbbd9b2
mod_spam_reporting: Continue looking for spam reports even when one <item> does not have one
Kim Alvefur <zash@zash.se>
parents:
2275
diff
changeset
|
21 "unknown"; |
2283
bd1117002a9b
mod_spam_reporting: Correctly check <text> child, not <reason>
Kim Alvefur <zash@zash.se>
parents:
2281
diff
changeset
|
22 local reason = report:get_child_text("text") or "no reason given"; |
2276
1b12ccbbd9b2
mod_spam_reporting: Continue looking for spam reports even when one <item> does not have one
Kim Alvefur <zash@zash.se>
parents:
2275
diff
changeset
|
23 module:log("warn", "Received report of %s from JID '%s', %s", type, jid, reason); |
2277
bad5dd466427
mod_spam_reporting: Fire an event to ease processing from other modules
Kim Alvefur <zash@zash.se>
parents:
2276
diff
changeset
|
24 module:fire_event(module.name.."/"..type.."-report", { |
2298
a59671b3dd43
mod_spam_reporting: Include jid in event
Kim Alvefur <zash@zash.se>
parents:
2283
diff
changeset
|
25 origin = event.origin, stanza = event.stanza, jid = jid, |
2277
bad5dd466427
mod_spam_reporting: Fire an event to ease processing from other modules
Kim Alvefur <zash@zash.se>
parents:
2276
diff
changeset
|
26 item = item, report = report, reason = reason, }); |
2276
1b12ccbbd9b2
mod_spam_reporting: Continue looking for spam reports even when one <item> does not have one
Kim Alvefur <zash@zash.se>
parents:
2275
diff
changeset
|
27 end |
2266
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
28 end |
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
29 end, 1); |