Aller au contenu

Auto-mod

Octavius propose 2 couches d'auto-mod complémentaires (défense en profondeur) :

  1. Auto-mod natif Discord (API AutoMod 2023) — filtrage server-side, latence ~0 ms, fonctionne même si le bot est offline.
  2. 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_MESSAGE avec 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}/config avec {"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).