Auto-mod¶
Octavius propose 2 couches d'auto-mod complémentaires (défense en profondeur) :
- Auto-mod natif Discord (API AutoMod 2023) — filtrage server-side, latence ~0 ms, fonctionne même si le bot est offline.
- Auto-mod Python (
cogs/auto_protect.py+ filtre badwords) — plus de contrôle, sanctions custom escaladées (timeout → kick).
Auto-mod natif Discord¶
Setup¶
/automod sync # Synchronise la liste BADWORDS vers une AutoModRule native
/automod status # Affiche les règles AutoMod Octavius actives
/automod clear # Supprime les règles AutoMod créées par Octavius
Permission requise : Manage Server.
La règle créée :
- Trigger :
AutoModRuleTriggerType.keyword - Filter : ta liste
BADWORDS(max 1000 mots, dédupliquée) - Action :
BLOCK_MESSAGEavec message FR custom - Tag
[Octavius]dans le name (pour ne jamais toucher aux rules d'autres bots)
Limites Discord¶
- 6 règles AutoMod max par serveur (limite Discord, tous bots confondus)
- 1000 keywords max par règle (les BADWORDS au-delà sont tronquées)
- 60 caractères max par keyword
Auto-mod Python custom¶
Configuré via les variables PROTECT_* dans guild_config (modifiables
par le dashboard ou par /setprotect) :
| Variable | Default | Description |
|---|---|---|
PROTECT_ANTISPAM_ENABLED |
false |
Activer l'anti-spam |
PROTECT_ANTISPAM_LIMIT |
5 |
Messages identiques |
PROTECT_ANTISPAM_WINDOW_SEC |
10 |
... en N secondes |
PROTECT_MASS_MENTION_LIMIT |
0 |
Mentions max/message (0 = off) |
PROTECT_ANTIINVITE_ENABLED |
false |
Filtrer les invites Discord |
Sanctions anti-spam escaladées¶
| Infraction | Sanction |
|---|---|
| N1 (1ère) | Suppression + timeout 30s + DM avertissement |
| N2 (2e) | Timeout 5 min + DM + ping staff dans le log |
| N3+ (3e et plus) | KICK + alerte rouge Staff/Admin/Fondateur |
Les rôles Staff / Admin / Fondateur sont exemptés de toutes les sanctions auto-protect (sauf l'anti-spam qui reste actif même pour eux, au cas où un compte staff serait compromis).
Badwords (liste custom)¶
Configurable via :
- Commande Discord : (non exposée, passe par le dashboard)
- Dashboard web : section Modération > Mots interdits
- API :
PATCH /discord/guilds/{id}/configavec{"patch": {"BADWORDS": [...]}}
Validation stricte :
- Max 500 mots par serveur
- Chaque mot : 1-40 chars, lowercase, sans caractères regex dangereux
(
.,*,+,?,^,$,(),[],{},|,\) pour éviter ReDoS
Une fois la liste mise à jour, lance /automod sync pour pousser les
nouveaux mots vers AutoMod natif (ou ils restent effectifs côté filtre
Python uniquement).