Mercurial > prosody-modules
annotate mod_spam_reporting/mod_spam_reporting.lua @ 2712:d89ab70808f6
mod_cloud_notify: fix bug when multiple resources are used
This bug was triggered under the rare circumstances that a message arrived
and one resource was smacks hibernated while the other one(s) were offline.
Then only the hibernated resource but not the offline one(s) (or the other
way round) got notified.
author | tmolitor <thilo@eightysoft.de> |
---|---|
date | Mon, 08 May 2017 18:24:29 +0200 |
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); |