@amatiscorp/disguard 1.3.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +173 -15
- package/dist/AntiSpam.d.ts +4 -0
- package/dist/AntiSpam.d.ts.map +1 -1
- package/dist/AntiSpam.js +82 -2
- package/dist/AntiSpam.js.map +1 -1
- package/dist/defaults.d.ts.map +1 -1
- package/dist/defaults.js +75 -1
- package/dist/defaults.js.map +1 -1
- package/dist/detectors/accounts.d.ts.map +1 -1
- package/dist/detectors/accounts.js +14 -0
- package/dist/detectors/accounts.js.map +1 -1
- package/dist/detectors/attach.d.ts +3 -0
- package/dist/detectors/attach.d.ts.map +1 -0
- package/dist/detectors/attach.js +31 -0
- package/dist/detectors/attach.js.map +1 -0
- package/dist/detectors/blank.d.ts +3 -0
- package/dist/detectors/blank.d.ts.map +1 -0
- package/dist/detectors/blank.js +25 -0
- package/dist/detectors/blank.js.map +1 -0
- package/dist/detectors/duplicates.js +1 -1
- package/dist/detectors/duplicates.js.map +1 -1
- package/dist/detectors/echo.d.ts +3 -0
- package/dist/detectors/echo.d.ts.map +1 -0
- package/dist/detectors/echo.js +37 -0
- package/dist/detectors/echo.js.map +1 -0
- package/dist/detectors/embed.d.ts +3 -0
- package/dist/detectors/embed.d.ts.map +1 -0
- package/dist/detectors/embed.js +25 -0
- package/dist/detectors/embed.js.map +1 -0
- package/dist/detectors/emojis.d.ts.map +1 -1
- package/dist/detectors/emojis.js +19 -1
- package/dist/detectors/emojis.js.map +1 -1
- package/dist/detectors/files.d.ts.map +1 -1
- package/dist/detectors/files.js +15 -1
- package/dist/detectors/files.js.map +1 -1
- package/dist/detectors/ghost.d.ts.map +1 -1
- package/dist/detectors/ghost.js +5 -0
- package/dist/detectors/ghost.js.map +1 -1
- package/dist/detectors/invisible.d.ts +3 -0
- package/dist/detectors/invisible.d.ts.map +1 -0
- package/dist/detectors/invisible.js +25 -0
- package/dist/detectors/invisible.js.map +1 -0
- package/dist/detectors/mentions.d.ts.map +1 -1
- package/dist/detectors/mentions.js +19 -1
- package/dist/detectors/mentions.js.map +1 -1
- package/dist/detectors/raid.d.ts +3 -0
- package/dist/detectors/raid.d.ts.map +1 -0
- package/dist/detectors/raid.js +23 -0
- package/dist/detectors/raid.js.map +1 -0
- package/dist/detectors/replies.d.ts +3 -0
- package/dist/detectors/replies.d.ts.map +1 -0
- package/dist/detectors/replies.js +32 -0
- package/dist/detectors/replies.js.map +1 -0
- package/dist/detectors/secrets.d.ts +3 -0
- package/dist/detectors/secrets.d.ts.map +1 -0
- package/dist/detectors/secrets.js +59 -0
- package/dist/detectors/secrets.js.map +1 -0
- package/dist/enforcement.d.ts.map +1 -1
- package/dist/enforcement.js +44 -6
- package/dist/enforcement.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/store/MemoryStore.d.ts +3 -0
- package/dist/store/MemoryStore.d.ts.map +1 -1
- package/dist/store/MemoryStore.js +21 -0
- package/dist/store/MemoryStore.js.map +1 -1
- package/dist/types.d.ts +102 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/normalize.d.ts +1 -0
- package/dist/utils/normalize.d.ts.map +1 -1
- package/dist/utils/normalize.js +4 -0
- package/dist/utils/normalize.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
**Configurable antispam for discord.js v14**
|
|
6
6
|
|
|
7
|
-
Flood · phishing ·
|
|
7
|
+
Flood · phishing · leaked secrets · channel hop · ghost pings · TypeScript
|
|
8
8
|
|
|
9
9
|
[](https://www.npmjs.com/package/@amatiscorp/disguard)
|
|
10
10
|
[](https://opensource.org/licenses/MIT)
|
|
@@ -22,11 +22,7 @@ Configurable antispam for [discord.js](https://discord.js.org) v14 bots.
|
|
|
22
22
|
|
|
23
23
|
It is **not** a bot. You plug it into your existing `Client` and decide every threshold, allowlist, and punishment.
|
|
24
24
|
|
|
25
|
-
Detects flood, channel hopping, blocked words, phishing
|
|
26
|
-
|
|
27
|
-
> **Español:** librería antispam configurable para bots de discord.js. No es un bot. La documentación en español está más abajo: [Español](#español).
|
|
28
|
-
|
|
29
|
-
---
|
|
25
|
+
Detects flood, leaked tokens/webhooks, channel hopping, blocked words, phishing, duplicate images, mention spam, ghost pings, and more.
|
|
30
26
|
|
|
31
27
|
**Languages**
|
|
32
28
|
|
|
@@ -37,9 +33,82 @@ Detects flood, channel hopping, blocked words, phishing / unwanted links, duplic
|
|
|
37
33
|
|
|
38
34
|
# English
|
|
39
35
|
|
|
40
|
-
## What's new in 1.
|
|
36
|
+
## What's new in 1.5.0
|
|
37
|
+
|
|
38
|
+
Channel raids, reply spam, empty messages, embed walls, file allowlists, and per-user overlays. Kick/ban stay **off**. `raid` is **off** in `balanced` so busy servers do not false-positive.
|
|
39
|
+
|
|
40
|
+
| Option | Default | What it does |
|
|
41
|
+
| --- | --- | --- |
|
|
42
|
+
| `replies` | **on**, 6 / 8s | Too many Discord **replies** in a short window (reply ping / bump spam). |
|
|
43
|
+
| `blank` | **on** | Empty or whitespace-only messages (no files/stickers/embeds). |
|
|
44
|
+
| `embeds` | **on**, 6 | Too many embeds in one message. |
|
|
45
|
+
| `raid` | **off** (`strict`: on, 6 users / 5s) | Too many **distinct users** posting in the **same channel** at once. |
|
|
46
|
+
| `files.allowedExtensions` | `[]` | If set, only those extensions are allowed (after the blocklist). |
|
|
47
|
+
| `emojis.maxInWindow` | `0` (off) | Cap emojis+stickers across several messages. |
|
|
48
|
+
| `ignoreNsfw` | `false` | Skip NSFW channels. |
|
|
49
|
+
| `graceMessages` | `0` | First N messages from a user only run file/secret/link/word (say hi without flood). |
|
|
50
|
+
| `userOverrides` / `setUserConfig` | `{}` | Per-user config overlay (after roles, before channel). |
|
|
51
|
+
|
|
52
|
+
```js
|
|
53
|
+
const antispam = new AntiSpam(client, {
|
|
54
|
+
preset: "balanced",
|
|
55
|
+
replies: { maxReplies: 5, windowMs: 8_000 },
|
|
56
|
+
blank: { enabled: true },
|
|
57
|
+
embeds: { maxEmbeds: 6 },
|
|
58
|
+
raid: { enabled: true, maxUsers: 8, windowMs: 6_000 },
|
|
59
|
+
files: { allowedExtensions: ["png", "jpg", "webp", "gif"] },
|
|
60
|
+
graceMessages: 2,
|
|
61
|
+
ignoreNsfw: true,
|
|
62
|
+
emojis: { maxInWindow: 30, windowMs: 10_000 },
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
antispam.setUserConfig("KNOWN_SPAMMER_ID", { flood: { maxMessages: 2 } });
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Turn `raid` on only if you want a busy general chat to trip when many people post at once (join raids). For a meme channel, leave it off or raise `maxUsers`.
|
|
69
|
+
|
|
70
|
+
## What's new in 1.4.0
|
|
71
|
+
|
|
72
|
+
Secret scanning, cross-channel copy-paste, invisible unicode, attachment floods, and cleaner logs. Kick/ban stay **off**.
|
|
73
|
+
|
|
74
|
+
| Option | Default | What it does |
|
|
75
|
+
| --- | --- | --- |
|
|
76
|
+
| `secrets` | **on** | Flags Discord **bot tokens** and **webhook URLs** pasted in chat (also embeds). The incident does **not** store the secret. |
|
|
77
|
+
| `echo` | **on**, 3 channels / 12s | Same text pasted across several channels (raid copypasta). Distinct from `hop` (any messages). |
|
|
78
|
+
| `invisible` | **on**, 8 | Zero-width / bidi characters used to dodge filters. |
|
|
79
|
+
| `attach` | **on**, 8 files / 10s | Too many attachments across a short window, not just dangerous extensions. |
|
|
80
|
+
| `duplicates.minLength` | `8` | Short stuff like `ok` / `lol` is no longer duplicate-spam. |
|
|
81
|
+
| `mentions.maxInWindow` | `0` (off) | Cap mentions across several messages, not only one. |
|
|
82
|
+
| `accounts.onlyWithLinks` | `false` (`strict`: true) | New accounts are flagged only if the message has a URL. |
|
|
83
|
+
| `punishment.purgeCount` | `0` | After a hit, bulk-delete N of that user's recent messages in the channel. |
|
|
84
|
+
| `punishment.logWebhookUrl` | `null` | Log embeds to a Discord webhook (no extra log channel needed). |
|
|
85
|
+
| `ignorePinned` | `false` | Skip pinned messages. |
|
|
86
|
+
| `ignoreOlderThanMs` | `0` | Skip old messages (useful on reconnect replay). |
|
|
87
|
+
| `setEnabled(false)` | — | Turn the whole filter off without `stop()`. |
|
|
88
|
+
|
|
89
|
+
```js
|
|
90
|
+
const antispam = new AntiSpam(client, {
|
|
91
|
+
preset: "balanced",
|
|
92
|
+
secrets: { enabled: true, botTokens: true, webhooks: true, extraPatterns: ["ghp_[A-Za-z0-9]{20,}"] },
|
|
93
|
+
echo: { maxChannels: 3, windowMs: 12_000, minLength: 12 },
|
|
94
|
+
invisible: { maxInvisible: 8 },
|
|
95
|
+
attach: { maxAttachments: 8, windowMs: 10_000 },
|
|
96
|
+
duplicates: { minLength: 8 },
|
|
97
|
+
accounts: { enabled: true, minAgeDays: 2, onlyWithLinks: true },
|
|
98
|
+
ignorePinned: true,
|
|
99
|
+
punishment: {
|
|
100
|
+
purgeCount: 5,
|
|
101
|
+
logWebhookUrl: process.env.DISGUARD_LOG_WEBHOOK || null,
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
antispam.setEnabled(false); // raid party / event
|
|
106
|
+
antispam.setEnabled(true);
|
|
107
|
+
```
|
|
41
108
|
|
|
42
|
-
|
|
109
|
+
`secrets` is meant to **delete leaks**, not to harvest credentials. Reasons only say “token/webhook”, never the value.
|
|
110
|
+
|
|
111
|
+
## What's new in 1.3.0
|
|
43
112
|
|
|
44
113
|
| Option | Default | What it does |
|
|
45
114
|
| --- | --- | --- |
|
|
@@ -173,6 +242,8 @@ console.log(antispam.getStats());
|
|
|
173
242
|
|
|
174
243
|
## Table of contents
|
|
175
244
|
|
|
245
|
+
- [What's new in 1.5.0](#whats-new-in-150)
|
|
246
|
+
- [What's new in 1.4.0](#whats-new-in-140)
|
|
176
247
|
- [What's new in 1.3.0](#whats-new-in-130)
|
|
177
248
|
- [What's new in 1.2.0](#whats-new-in-120)
|
|
178
249
|
- [What's new in 1.1.0](#whats-new-in-110)
|
|
@@ -214,6 +285,14 @@ console.log(antispam.getStats());
|
|
|
214
285
|
| **punctuation** | Long runs of the same character (`!!!!`, `aaaa`) |
|
|
215
286
|
| **spoiler** | Spoiler-tag walls |
|
|
216
287
|
| **ghost** | Deleted messages that mentioned users (off by default) |
|
|
288
|
+
| **secret** | Accidental Discord bot tokens / webhook URLs in chat |
|
|
289
|
+
| **echo** | Same text pasted in several channels |
|
|
290
|
+
| **invisible** | Zero-width / bidi obfuscation |
|
|
291
|
+
| **attach** | Attachment floods over a sliding window |
|
|
292
|
+
| **reply** | Too many replies in a short window |
|
|
293
|
+
| **blank** | Empty / whitespace-only messages |
|
|
294
|
+
| **embed** | Too many embeds in one message |
|
|
295
|
+
| **raid** | Many distinct users posting in one channel (off by default) |
|
|
217
296
|
|
|
218
297
|
Also included:
|
|
219
298
|
|
|
@@ -348,9 +427,9 @@ Enable **Message Content Intent** in the [Discord Developer Portal](https://disc
|
|
|
348
427
|
|
|
349
428
|
1. Ignores bots, webhooks, system messages, the owner, administrators, command prefixes, and anything in your ignore lists.
|
|
350
429
|
2. Keeps a short **in-memory** history per user and guild (no database).
|
|
351
|
-
3. Runs detectors in this order: files → words → flood → hop → duplicates → links → images → mentions → zalgo → newlines → punctuation → spoilers → accounts → length → caps → emojis. The first match wins.
|
|
430
|
+
3. Runs detectors in this order: files → secrets → words → flood → hop → echo → duplicates → attachments → raid → replies → blank → embeds → links → images → mentions → zalgo → newlines → punctuation → spoilers → invisible → accounts → length → caps → emojis. The first match wins.
|
|
352
431
|
4. Adds one strike (with optional decay) and applies the configured punishment.
|
|
353
|
-
5. Message edits re-check **links**, **mentions**,
|
|
432
|
+
5. Message edits re-check **links**, **mentions**, **words**, **secrets**, and **invisible**.
|
|
354
433
|
6. Deletes can trigger **ghost** pings if `ghostPing.enabled` is true.
|
|
355
434
|
|
|
356
435
|
Call `antispam.stop()` on shutdown, hot reload, or plugin unload.
|
|
@@ -708,7 +787,8 @@ new AntiSpam(client, {
|
|
|
708
787
|
{
|
|
709
788
|
type: "flood" | "duplicate" | "link" | "image" | "mention" | "caps" | "emoji"
|
|
710
789
|
| "file" | "zalgo" | "newline" | "account" | "length"
|
|
711
|
-
| "word" | "hop" | "punctuation" | "spoiler" | "ghost"
|
|
790
|
+
| "word" | "hop" | "punctuation" | "spoiler" | "ghost"
|
|
791
|
+
| "secret" | "echo" | "invisible" | "attach" | "reply" | "blank" | "embed" | "raid",
|
|
712
792
|
severity: "low" | "medium" | "high" | "critical",
|
|
713
793
|
userId: string,
|
|
714
794
|
guildId: string,
|
|
@@ -716,7 +796,7 @@ new AntiSpam(client, {
|
|
|
716
796
|
messageId: string,
|
|
717
797
|
reason: string,
|
|
718
798
|
details: Record<string, unknown>,
|
|
719
|
-
recommendedActions: Array<"delete" | "warn" | "timeout" | "kick" | "ban" | "addRole" | "removeRole">,
|
|
799
|
+
recommendedActions: Array<"delete" | "warn" | "timeout" | "kick" | "ban" | "addRole" | "removeRole" | "purge">,
|
|
720
800
|
timestamp: number,
|
|
721
801
|
}
|
|
722
802
|
```
|
|
@@ -746,6 +826,8 @@ antispam.stop();
|
|
|
746
826
|
antispam.pause();
|
|
747
827
|
antispam.resume();
|
|
748
828
|
antispam.isPaused();
|
|
829
|
+
antispam.setEnabled(false);
|
|
830
|
+
antispam.isEnabled();
|
|
749
831
|
|
|
750
832
|
const config = antispam.getConfig();
|
|
751
833
|
antispam.setConfig({ flood: { maxMessages: 8 } }); // deep merge, other keys stay
|
|
@@ -761,6 +843,8 @@ antispam.setChannelConfig(guildId, channelId, { images: { maxRepeats: 8 } });
|
|
|
761
843
|
antispam.getChannelConfig(guildId, channelId);
|
|
762
844
|
antispam.clearChannelConfig(guildId, channelId);
|
|
763
845
|
antispam.setRoleConfig(roleId, { flood: { maxMessages: 12 } });
|
|
846
|
+
antispam.setUserConfig(userId, { flood: { maxMessages: 2 } });
|
|
847
|
+
antispam.clearUserConfig(userId);
|
|
764
848
|
antispam.clearRoleConfig(roleId);
|
|
765
849
|
|
|
766
850
|
antispam.use(customDetector);
|
|
@@ -917,9 +1001,17 @@ Wait a few seconds between categories so flood does not eat the next test.
|
|
|
917
1001
|
| Spoilers | More than 8 `\|\|spoiler\|\|` pairs |
|
|
918
1002
|
| Blocked word | Enable `words` first, then send a listed word |
|
|
919
1003
|
| Ghost ping | Mention someone and delete the message within 15s (`ghostPing.enabled: true`) |
|
|
1004
|
+
| Secret | Paste a dummy webhook URL `https://discord.com/api/webhooks/123/abc` |
|
|
1005
|
+
| Echo | Same long sentence in 3 channels within 12s |
|
|
1006
|
+
| Invisible | A message padded with many zero-width spaces |
|
|
1007
|
+
| Attachments | 8+ files in 10 seconds |
|
|
1008
|
+
| Replies | Reply to someone 6 times in 8s |
|
|
1009
|
+
| Blank | A message with only spaces |
|
|
1010
|
+
| Embeds | A webhook-style dump with 7+ embeds |
|
|
1011
|
+
| Raid | Enable `raid` and have 8 people post in the same channel in 6s |
|
|
920
1012
|
| Edit | Send `hello`, then edit it to `Free Nitro https://bit.ly/test` |
|
|
921
1013
|
|
|
922
|
-
Watch the terminal: `[detect] flood|duplicate|link|image|mention|caps|emoji|file|zalgo|newline|word|hop|punctuation|spoiler|ghost`.
|
|
1014
|
+
Watch the terminal: `[detect] flood|duplicate|link|image|mention|caps|emoji|file|zalgo|newline|word|hop|punctuation|spoiler|ghost|secret|echo|invisible|attach`.
|
|
923
1015
|
|
|
924
1016
|
The second strike applies a 1 minute timeout with the default example config. Strikes decay after 15 minutes, or call `resetUser`.
|
|
925
1017
|
|
|
@@ -960,6 +1052,60 @@ MIT
|
|
|
960
1052
|
|
|
961
1053
|
# Español
|
|
962
1054
|
|
|
1055
|
+
## Novedades de 1.5.0
|
|
1056
|
+
|
|
1057
|
+
Raids de canal, spam de replies, mensajes vacíos, paredes de embeds, allowlist de archivos y config por usuario. Kick/ban siguen **apagados**. `raid` va **apagado** en `balanced`.
|
|
1058
|
+
|
|
1059
|
+
| Opción | Default | Qué hace |
|
|
1060
|
+
| --- | --- | --- |
|
|
1061
|
+
| `replies` | **on**, 6 / 8s | Demasiadas **respuestas** seguidas. |
|
|
1062
|
+
| `blank` | **on** | Mensajes vacíos o solo espacios. |
|
|
1063
|
+
| `embeds` | **on**, 6 | Demasiados embeds en un mensaje. |
|
|
1064
|
+
| `raid` | **off** (`strict`: on) | Demasiados **usuarios distintos** escribiendo en el **mismo canal**. |
|
|
1065
|
+
| `files.allowedExtensions` | `[]` | Si lo rellenas, solo esas extensiones pasan. |
|
|
1066
|
+
| `emojis.maxInWindow` | `0` (off) | Tope de emojis+stickers entre varios mensajes. |
|
|
1067
|
+
| `ignoreNsfw` | `false` | Ignora canales NSFW. |
|
|
1068
|
+
| `graceMessages` | `0` | Los primeros N mensajes solo miran file/secret/link/word. |
|
|
1069
|
+
| `setUserConfig` | — | Overlay por usuario. |
|
|
1070
|
+
|
|
1071
|
+
```js
|
|
1072
|
+
new AntiSpam(client, {
|
|
1073
|
+
raid: { enabled: true, maxUsers: 8 },
|
|
1074
|
+
files: { allowedExtensions: ["png", "jpg", "webp"] },
|
|
1075
|
+
graceMessages: 2,
|
|
1076
|
+
ignoreNsfw: true,
|
|
1077
|
+
});
|
|
1078
|
+
antispam.setUserConfig("ID_USER", { flood: { maxMessages: 2 } });
|
|
1079
|
+
```
|
|
1080
|
+
|
|
1081
|
+
## Novedades de 1.4.0
|
|
1082
|
+
|
|
1083
|
+
Escaneo de secretos, copypasta entre canales, unicode invisible, flood de adjuntos y logs por webhook. Kick/ban siguen **apagados**.
|
|
1084
|
+
|
|
1085
|
+
| Opción | Default | Qué hace |
|
|
1086
|
+
| --- | --- | --- |
|
|
1087
|
+
| `secrets` | **on** | Caza **tokens de bot** y **webhooks** pegados en el chat. El incidente **no** guarda el secreto. |
|
|
1088
|
+
| `echo` | **on**, 3 canales / 12s | El mismo texto en varios canales (raid). No es lo mismo que `hop`. |
|
|
1089
|
+
| `invisible` | **on**, 8 | Caracteres de ancho cero / bidi para saltarse filtros. |
|
|
1090
|
+
| `attach` | **on**, 8 / 10s | Demasiados adjuntos en una ventana, no solo `.exe`. |
|
|
1091
|
+
| `duplicates.minLength` | `8` | `ok` / `lol` ya no cuentan como duplicado. |
|
|
1092
|
+
| `mentions.maxInWindow` | `0` (off) | Tope de menciones entre varios mensajes. |
|
|
1093
|
+
| `accounts.onlyWithLinks` | `false` (`strict`: true) | Cuentas nuevas solo si el mensaje trae URL. |
|
|
1094
|
+
| `punishment.purgeCount` | `0` | Tras un hit, borra N mensajes recientes de ese user en el canal. |
|
|
1095
|
+
| `punishment.logWebhookUrl` | `null` | Logs a un webhook de Discord. |
|
|
1096
|
+
| `ignorePinned` | `false` | Ignora pineados. |
|
|
1097
|
+
| `ignoreOlderThanMs` | `0` | Ignora mensajes viejos (replay al reconectar). |
|
|
1098
|
+
| `setEnabled(false)` | — | Apaga el filtro sin `stop()`. |
|
|
1099
|
+
|
|
1100
|
+
```js
|
|
1101
|
+
new AntiSpam(client, {
|
|
1102
|
+
secrets: { enabled: true, extraPatterns: ["ghp_[A-Za-z0-9]{20,}"] },
|
|
1103
|
+
echo: { maxChannels: 3 },
|
|
1104
|
+
accounts: { enabled: true, onlyWithLinks: true },
|
|
1105
|
+
punishment: { purgeCount: 5, logWebhookUrl: process.env.DISGUARD_LOG_WEBHOOK || null },
|
|
1106
|
+
});
|
|
1107
|
+
```
|
|
1108
|
+
|
|
963
1109
|
## Novedades de 1.3.0
|
|
964
1110
|
|
|
965
1111
|
Más detectores, overlays por rol, mute por rol y más ignores. Todo es opcional.
|
|
@@ -1049,6 +1195,8 @@ new AntiSpam(client, {
|
|
|
1049
1195
|
|
|
1050
1196
|
## Tabla de contenidos
|
|
1051
1197
|
|
|
1198
|
+
- [Novedades de 1.5.0](#novedades-de-150)
|
|
1199
|
+
- [Novedades de 1.4.0](#novedades-de-140)
|
|
1052
1200
|
- [Novedades de 1.3.0](#novedades-de-130)
|
|
1053
1201
|
- [Novedades de 1.2.0](#novedades-de-120)
|
|
1054
1202
|
- [Novedades de 1.1.0](#novedades-de-110)
|
|
@@ -1169,7 +1317,7 @@ Activa **Message Content Intent** en el [Portal de Discord](https://discord.com/
|
|
|
1169
1317
|
|
|
1170
1318
|
1. Ignora bots, webhooks, mensajes de sistema, el dueño, administradores, prefijos de comando y tus listas de ignore.
|
|
1171
1319
|
2. Guarda en **memoria** un historial corto por usuario y servidor. Sin base de datos.
|
|
1172
|
-
3. Pasa el mensaje por: archivos → palabras → flood → hop → duplicados → enlaces → imágenes → menciones → zalgo → líneas → puntuación → spoilers → cuentas → longitud → caps → emojis. El primero que dispare gana.
|
|
1320
|
+
3. Pasa el mensaje por: archivos → secretos → palabras → flood → hop → echo → duplicados → adjuntos → raid → replies → vacíos → embeds → enlaces → imágenes → menciones → zalgo → líneas → puntuación → spoilers → invisibles → cuentas → longitud → caps → emojis. El primero que dispare gana.
|
|
1173
1321
|
4. Suma un strike (con caducidad) y aplica el castigo configurado.
|
|
1174
1322
|
5. Las ediciones revisan **enlaces**, **menciones** y **palabras**.
|
|
1175
1323
|
6. Los borrados pueden disparar **ghost** ping si `ghostPing.enabled` es true.
|
|
@@ -1377,6 +1525,7 @@ antispam.start();
|
|
|
1377
1525
|
antispam.stop();
|
|
1378
1526
|
antispam.pause();
|
|
1379
1527
|
antispam.resume();
|
|
1528
|
+
antispam.setEnabled(false);
|
|
1380
1529
|
antispam.getConfig();
|
|
1381
1530
|
antispam.setConfig({ flood: { maxMessages: 8 } });
|
|
1382
1531
|
antispam.getStrikes(guildId, userId);
|
|
@@ -1384,6 +1533,7 @@ antispam.resetUser(guildId, userId);
|
|
|
1384
1533
|
antispam.setGuildConfig(guildId, { flood: { maxMessages: 3 } });
|
|
1385
1534
|
antispam.setChannelConfig(guildId, channelId, { flood: { maxMessages: 12 } });
|
|
1386
1535
|
antispam.setRoleConfig(roleId, { emojis: { maxEmojis: 40 } });
|
|
1536
|
+
antispam.setUserConfig(userId, { flood: { maxMessages: 2 } });
|
|
1387
1537
|
antispam.getStats();
|
|
1388
1538
|
|
|
1389
1539
|
const incident = await antispam.analyze(message);
|
|
@@ -1459,9 +1609,17 @@ Espera unos segundos entre categorías.
|
|
|
1459
1609
|
| Spoilers | Más de 8 pares `\|\|spoiler\|\|` |
|
|
1460
1610
|
| Palabra | Activa `words` y manda una de la lista |
|
|
1461
1611
|
| Ghost ping | Menciona a alguien y borra el mensaje en menos de 15s (`ghostPing.enabled: true`) |
|
|
1612
|
+
| Secreto | Pega un webhook de mentira `https://discord.com/api/webhooks/123/abc` |
|
|
1613
|
+
| Echo | La misma frase larga en 3 canales en 12s |
|
|
1614
|
+
| Invisible | Un mensaje con muchos espacios de ancho cero |
|
|
1615
|
+
| Adjuntos | 8+ archivos en 10 segundos |
|
|
1616
|
+
| Replies | Responder 6 veces en 8s |
|
|
1617
|
+
| Vacío | Un mensaje solo con espacios |
|
|
1618
|
+
| Embeds | 7+ embeds en un mensaje |
|
|
1619
|
+
| Raid | Activa `raid` y que 8 personas escriban en el mismo canal |
|
|
1462
1620
|
| Edición | Manda `hola` y edítalo a `Free Nitro https://bit.ly/test` |
|
|
1463
1621
|
|
|
1464
|
-
En la terminal: `[detect] flood|duplicate|link|image|mention|caps|emoji|file|zalgo|newline|word|hop|punctuation|spoiler|ghost`.
|
|
1622
|
+
En la terminal: `[detect] flood|duplicate|link|image|mention|caps|emoji|file|zalgo|newline|word|hop|punctuation|spoiler|ghost|secret|echo|invisible|attach`.
|
|
1465
1623
|
|
|
1466
1624
|
Al segundo strike el ejemplo mete timeout de 1 minuto. Los strikes caducan a los 15 minutos, o usa `resetUser`.
|
|
1467
1625
|
|
package/dist/AntiSpam.d.ts
CHANGED
|
@@ -25,6 +25,8 @@ export declare class AntiSpam {
|
|
|
25
25
|
pause(): this;
|
|
26
26
|
resume(): this;
|
|
27
27
|
isPaused(): boolean;
|
|
28
|
+
setEnabled(enabled: boolean): this;
|
|
29
|
+
isEnabled(): boolean;
|
|
28
30
|
/** Adds a custom detector. It runs after the built-in ones. */
|
|
29
31
|
use(detector: Detector): this;
|
|
30
32
|
getConfig(): ResolvedConfig;
|
|
@@ -38,6 +40,8 @@ export declare class AntiSpam {
|
|
|
38
40
|
clearChannelConfig(guildId: string, channelId: string): void;
|
|
39
41
|
setRoleConfig(roleId: string, patch: DeepPartial<ResolvedConfig>): void;
|
|
40
42
|
clearRoleConfig(roleId: string): void;
|
|
43
|
+
setUserConfig(userId: string, patch: DeepPartial<ResolvedConfig>): void;
|
|
44
|
+
clearUserConfig(userId: string): void;
|
|
41
45
|
getStrikes(guildId: string, userId: string): number;
|
|
42
46
|
isCoolingDown(guildId: string, userId: string): boolean;
|
|
43
47
|
resetUser(guildId: string, userId: string): void;
|
package/dist/AntiSpam.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AntiSpam.d.ts","sourceRoot":"","sources":["../src/AntiSpam.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,MAAM,EACX,KAAK,OAAO,EAEb,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"AntiSpam.d.ts","sourceRoot":"","sources":["../src/AntiSpam.ts"],"names":[],"mappings":"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"}
|
package/dist/AntiSpam.js
CHANGED
|
@@ -5,19 +5,27 @@ exports.createAntiSpam = createAntiSpam;
|
|
|
5
5
|
const discord_js_1 = require("discord.js");
|
|
6
6
|
const defaults_1 = require("./defaults");
|
|
7
7
|
const accounts_1 = require("./detectors/accounts");
|
|
8
|
+
const attach_1 = require("./detectors/attach");
|
|
9
|
+
const blank_1 = require("./detectors/blank");
|
|
8
10
|
const caps_1 = require("./detectors/caps");
|
|
9
11
|
const duplicates_1 = require("./detectors/duplicates");
|
|
12
|
+
const echo_1 = require("./detectors/echo");
|
|
13
|
+
const embed_1 = require("./detectors/embed");
|
|
10
14
|
const emojis_1 = require("./detectors/emojis");
|
|
11
15
|
const files_1 = require("./detectors/files");
|
|
12
16
|
const flood_1 = require("./detectors/flood");
|
|
13
17
|
const ghost_1 = require("./detectors/ghost");
|
|
14
18
|
const hop_1 = require("./detectors/hop");
|
|
15
19
|
const images_1 = require("./detectors/images");
|
|
20
|
+
const invisible_1 = require("./detectors/invisible");
|
|
16
21
|
const length_1 = require("./detectors/length");
|
|
17
22
|
const links_1 = require("./detectors/links");
|
|
18
23
|
const mentions_1 = require("./detectors/mentions");
|
|
19
24
|
const newlines_1 = require("./detectors/newlines");
|
|
20
25
|
const punctuation_1 = require("./detectors/punctuation");
|
|
26
|
+
const raid_1 = require("./detectors/raid");
|
|
27
|
+
const replies_1 = require("./detectors/replies");
|
|
28
|
+
const secrets_1 = require("./detectors/secrets");
|
|
21
29
|
const spoilers_1 = require("./detectors/spoilers");
|
|
22
30
|
const words_1 = require("./detectors/words");
|
|
23
31
|
const zalgo_1 = require("./detectors/zalgo");
|
|
@@ -42,8 +50,16 @@ const DETECTOR_TYPES = [
|
|
|
42
50
|
"punctuation",
|
|
43
51
|
"spoiler",
|
|
44
52
|
"ghost",
|
|
53
|
+
"invisible",
|
|
54
|
+
"echo",
|
|
55
|
+
"secret",
|
|
56
|
+
"attach",
|
|
57
|
+
"reply",
|
|
58
|
+
"blank",
|
|
59
|
+
"embed",
|
|
60
|
+
"raid",
|
|
45
61
|
];
|
|
46
|
-
const ACTION_TYPES = ["delete", "warn", "timeout", "kick", "ban", "addRole", "removeRole"];
|
|
62
|
+
const ACTION_TYPES = ["delete", "warn", "timeout", "kick", "ban", "addRole", "removeRole", "purge"];
|
|
47
63
|
function emptyStats() {
|
|
48
64
|
return {
|
|
49
65
|
analyzed: 0,
|
|
@@ -83,10 +99,17 @@ class AntiSpam {
|
|
|
83
99
|
this.config = (0, defaults_1.resolveConfig)(preset, configOptions);
|
|
84
100
|
this.detectors = [
|
|
85
101
|
files_1.fileDetector,
|
|
102
|
+
secrets_1.secretDetector,
|
|
86
103
|
words_1.wordDetector,
|
|
87
104
|
flood_1.floodDetector,
|
|
88
105
|
hop_1.hopDetector,
|
|
106
|
+
echo_1.echoDetector,
|
|
89
107
|
duplicates_1.duplicateDetector,
|
|
108
|
+
attach_1.attachDetector,
|
|
109
|
+
raid_1.raidDetector,
|
|
110
|
+
replies_1.replyDetector,
|
|
111
|
+
blank_1.blankDetector,
|
|
112
|
+
embed_1.embedDetector,
|
|
90
113
|
links_1.linkDetector,
|
|
91
114
|
(0, images_1.createImageDetector)(this.store),
|
|
92
115
|
mentions_1.mentionDetector,
|
|
@@ -94,6 +117,7 @@ class AntiSpam {
|
|
|
94
117
|
newlines_1.newlineDetector,
|
|
95
118
|
punctuation_1.punctuationDetector,
|
|
96
119
|
spoilers_1.spoilerDetector,
|
|
120
|
+
invisible_1.invisibleDetector,
|
|
97
121
|
accounts_1.accountDetector,
|
|
98
122
|
length_1.lengthDetector,
|
|
99
123
|
caps_1.capsDetector,
|
|
@@ -144,6 +168,13 @@ class AntiSpam {
|
|
|
144
168
|
isPaused() {
|
|
145
169
|
return this.paused;
|
|
146
170
|
}
|
|
171
|
+
setEnabled(enabled) {
|
|
172
|
+
this.config = (0, defaults_1.mergeDeep)(this.config, { enabled });
|
|
173
|
+
return this;
|
|
174
|
+
}
|
|
175
|
+
isEnabled() {
|
|
176
|
+
return this.config.enabled;
|
|
177
|
+
}
|
|
147
178
|
/** Adds a custom detector. It runs after the built-in ones. */
|
|
148
179
|
use(detector) {
|
|
149
180
|
this.detectors.push(detector);
|
|
@@ -190,6 +221,16 @@ class AntiSpam {
|
|
|
190
221
|
delete current[roleId];
|
|
191
222
|
this.config = { ...this.config, roleOverrides: current };
|
|
192
223
|
}
|
|
224
|
+
setUserConfig(userId, patch) {
|
|
225
|
+
const current = { ...this.config.userOverrides };
|
|
226
|
+
current[userId] = (0, defaults_1.mergeDeep)(current[userId] ?? {}, patch);
|
|
227
|
+
this.config = (0, defaults_1.mergeDeep)(this.config, { userOverrides: current });
|
|
228
|
+
}
|
|
229
|
+
clearUserConfig(userId) {
|
|
230
|
+
const current = { ...this.config.userOverrides };
|
|
231
|
+
delete current[userId];
|
|
232
|
+
this.config = { ...this.config, userOverrides: current };
|
|
233
|
+
}
|
|
193
234
|
getStrikes(guildId, userId) {
|
|
194
235
|
return this.store.getStrikes(guildId, userId, Date.now(), this.configFor(guildId).punishment.strikeDecayMs);
|
|
195
236
|
}
|
|
@@ -218,15 +259,27 @@ class AntiSpam {
|
|
|
218
259
|
const config = this.configFor(message.guild.id, message.channelId, message);
|
|
219
260
|
const now = Date.now();
|
|
220
261
|
const snapshot = this.toSnapshot(message, now);
|
|
262
|
+
if (!options.isEdit) {
|
|
263
|
+
this.store.pushChannelActivity(message.guild.id, message.channelId, message.author.id, now);
|
|
264
|
+
}
|
|
221
265
|
const history = options.isEdit
|
|
222
266
|
? this.store.getHistory(message.guild.id, message.author.id, now, this.maxRetentionMs(config))
|
|
223
267
|
: this.store.pushMessage(message.guild.id, message.author.id, snapshot, this.maxRetentionMs(config));
|
|
224
268
|
this.stats.analyzed += 1;
|
|
269
|
+
const uniqueUsersInChannel = this.store.countUniqueUsers(message.guild.id, message.channelId, now, config.raid.windowMs);
|
|
270
|
+
const graceOnly = ["file", "secret", "link", "word"];
|
|
271
|
+
const inGrace = config.graceMessages > 0 && history.length <= config.graceMessages;
|
|
225
272
|
const detectors = this.orderedDetectors(config).filter((detector) => {
|
|
226
273
|
if (config.disabledDetectors.includes(detector.type))
|
|
227
274
|
return false;
|
|
275
|
+
if (inGrace && !graceOnly.includes(detector.type))
|
|
276
|
+
return false;
|
|
228
277
|
if (options.isEdit) {
|
|
229
|
-
return detector.type === "link" ||
|
|
278
|
+
return (detector.type === "link" ||
|
|
279
|
+
detector.type === "mention" ||
|
|
280
|
+
detector.type === "word" ||
|
|
281
|
+
detector.type === "secret" ||
|
|
282
|
+
detector.type === "invisible");
|
|
230
283
|
}
|
|
231
284
|
return true;
|
|
232
285
|
});
|
|
@@ -238,6 +291,7 @@ class AntiSpam {
|
|
|
238
291
|
history,
|
|
239
292
|
config,
|
|
240
293
|
now,
|
|
294
|
+
uniqueUsersInChannel,
|
|
241
295
|
});
|
|
242
296
|
if (incident)
|
|
243
297
|
return incident;
|
|
@@ -331,6 +385,15 @@ class AntiSpam {
|
|
|
331
385
|
return true;
|
|
332
386
|
if (message.system && config.ignoreSystem)
|
|
333
387
|
return true;
|
|
388
|
+
if (message.pinned && config.ignorePinned)
|
|
389
|
+
return true;
|
|
390
|
+
if (config.ignoreOlderThanMs > 0 && message.createdTimestamp) {
|
|
391
|
+
if (Date.now() - message.createdTimestamp > config.ignoreOlderThanMs)
|
|
392
|
+
return true;
|
|
393
|
+
}
|
|
394
|
+
if (config.ignoreNsfw && "nsfw" in message.channel && Boolean(message.channel.nsfw)) {
|
|
395
|
+
return true;
|
|
396
|
+
}
|
|
334
397
|
if (!message.guild)
|
|
335
398
|
return true;
|
|
336
399
|
if (config.ignored.guilds.includes(message.guild.id))
|
|
@@ -380,6 +443,9 @@ class AntiSpam {
|
|
|
380
443
|
}
|
|
381
444
|
}
|
|
382
445
|
}
|
|
446
|
+
const userPatch = message?.author ? resolved.userOverrides[message.author.id] : undefined;
|
|
447
|
+
if (userPatch)
|
|
448
|
+
resolved = (0, defaults_1.mergeDeep)(resolved, userPatch);
|
|
383
449
|
if (channelId && resolved.channelOverrides[channelId]) {
|
|
384
450
|
resolved = (0, defaults_1.mergeDeep)(resolved, resolved.channelOverrides[channelId]);
|
|
385
451
|
}
|
|
@@ -400,6 +466,9 @@ class AntiSpam {
|
|
|
400
466
|
});
|
|
401
467
|
}
|
|
402
468
|
toSnapshot(message, now) {
|
|
469
|
+
const mentionCount = [...message.mentions.users.values()].filter((user) => user.id !== message.author.id).length +
|
|
470
|
+
message.mentions.roles.size +
|
|
471
|
+
(message.mentions.everyone ? 1 : 0);
|
|
403
472
|
return {
|
|
404
473
|
id: message.id,
|
|
405
474
|
channelId: message.channelId,
|
|
@@ -407,6 +476,11 @@ class AntiSpam {
|
|
|
407
476
|
normalized: (0, normalize_1.normalizeText)(message.content),
|
|
408
477
|
timestamp: now,
|
|
409
478
|
attachmentHashes: [],
|
|
479
|
+
attachmentCount: message.attachments.size,
|
|
480
|
+
mentionCount,
|
|
481
|
+
isReply: Boolean(message.reference?.messageId),
|
|
482
|
+
emojiCount: (0, normalize_1.countEmojis)(message.content) + message.stickers.size,
|
|
483
|
+
embedCount: message.embeds.length,
|
|
410
484
|
};
|
|
411
485
|
}
|
|
412
486
|
maxRetentionMs(config = this.config) {
|
|
@@ -417,6 +491,12 @@ class AntiSpam {
|
|
|
417
491
|
config.punishment.strikeDecayMs,
|
|
418
492
|
config.punishment.cooldownMs,
|
|
419
493
|
config.hop.windowMs,
|
|
494
|
+
config.echo.windowMs,
|
|
495
|
+
config.attach.windowMs,
|
|
496
|
+
config.mentions.windowMs,
|
|
497
|
+
config.replies.windowMs,
|
|
498
|
+
config.raid.windowMs,
|
|
499
|
+
config.emojis.windowMs,
|
|
420
500
|
];
|
|
421
501
|
return Math.max(30_000, ...windows);
|
|
422
502
|
}
|
package/dist/AntiSpam.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AntiSpam.js","sourceRoot":"","sources":["../src/AntiSpam.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AntiSpam.js","sourceRoot":"","sources":["../src/AntiSpam.ts"],"names":[],"mappings":"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"}
|
package/dist/defaults.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACf,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACf,MAAM,SAAS,CAAC;AAqVjB,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAuBlE;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,GAAG,SAAS,EAC9B,OAAO,GAAE,WAAW,CAAC,cAAc,CAAM,GACxC,cAAc,CAGhB;AAED,eAAO,MAAM,cAAc,gBAAO,CAAC"}
|