Logs Modération (Ban / Unban / Timeout) #3

Open
opened 2026-05-31 01:36:06 +02:00 by raphael · 0 comments
Owner

Description

Logger les actions de modération lourdes : bannissements, débannissements et mises en timeout.
Récupérer l’auteur de l’action via l’Audit Log lorsque l’event gateway ne le fournit pas nativement.

Events à traiter

Event Discord Struct Serenity Lien docs.rs
GUILD_BAN_ADD GuildBanAddEvent https://docs.rs/serenity/latest/serenity/model/event/struct.GuildBanAddEvent.html
GUILD_BAN_REMOVE GuildBanRemoveEvent https://docs.rs/serenity/latest/serenity/model/event/struct.GuildBanRemoveEvent.html
GUILD_AUDIT_LOG_ENTRY_CREATE (optionnel, pour récupérer l'auteur) AuditLogEntryCreateEvent https://docs.rs/serenity/latest/serenity/model/event/struct.AuditLogEntryCreateEvent.html

Le timeout est détecté via GuildMemberUpdate lorsque communication_disabled_until change (sera traité dans le ticket Membres si préférable, ou ici si tu veux regrouper la modération).

Critères d'acceptation

  • Ban loggé : utilisateur ciblé, auteur (si récupérable), raison, timestamp.
  • Unban loggé : utilisateur ciblé, auteur, timestamp.
  • Timeout : membre, durée, auteur, raison.
  • Si l’auteur n’est pas dans l’event gateway, tentative de résolution via audit log.
  • Format d’embed cohérent avec LogRenderer (ticket #1).
  • Commande de configuration fonctionnelle : /logs set moderation #salon.

Notes d'implémentation

  • Nécessite l’intent GUILD_MODERATION.
  • Attention au rate-limit de l’Audit Log API si on fetch manuellement ; préférer AuditLogEntryCreateEvent si disponible.
### Description Logger les actions de modération lourdes : bannissements, débannissements et mises en timeout. Récupérer l’auteur de l’action via l’Audit Log lorsque l’event gateway ne le fournit pas nativement. ### Events à traiter | Event Discord | Struct Serenity | Lien docs.rs | |---------------|-----------------|--------------| | `GUILD_BAN_ADD` | `GuildBanAddEvent` | https://docs.rs/serenity/latest/serenity/model/event/struct.GuildBanAddEvent.html | | `GUILD_BAN_REMOVE` | `GuildBanRemoveEvent` | https://docs.rs/serenity/latest/serenity/model/event/struct.GuildBanRemoveEvent.html | | `GUILD_AUDIT_LOG_ENTRY_CREATE` (optionnel, pour récupérer l'auteur) | `AuditLogEntryCreateEvent` | https://docs.rs/serenity/latest/serenity/model/event/struct.AuditLogEntryCreateEvent.html | *Le timeout est détecté via `GuildMemberUpdate` lorsque `communication_disabled_until` change (sera traité dans le ticket Membres si préférable, ou ici si tu veux regrouper la modération)*. ### Critères d'acceptation - [ ] Ban loggé : utilisateur ciblé, auteur (si récupérable), raison, timestamp. - [ ] Unban loggé : utilisateur ciblé, auteur, timestamp. - [ ] Timeout : membre, durée, auteur, raison. - [ ] Si l’auteur n’est pas dans l’event gateway, tentative de résolution via audit log. - [ ] Format d’embed cohérent avec `LogRenderer` (ticket #1). - [ ] Commande de configuration fonctionnelle : `/logs set moderation #salon`. ### Notes d'implémentation - Nécessite l’intent `GUILD_MODERATION`. - Attention au rate-limit de l’Audit Log API si on fetch manuellement ; préférer `AuditLogEntryCreateEvent` si disponible.
raphael added this to the Logs System milestone 2026-05-31 01:36:06 +02:00
raphael self-assigned this 2026-05-31 01:36:06 +02:00
raphael added this to the TTY project 2026-05-31 01:36:06 +02:00
raphael changed title from Logs Modération to Logs Modération (Ban / Unban / Timeout) 2026-05-31 01:49:00 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
raphael/tty#3
No description provided.