Logs Messages (Delete / Edit / Bulk Delete) #5

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

Description

Logger la suppression, l’édition et la suppression en masse de messages.
⚠️ Nécessite un cache interne des messages car les events de suppression ne contiennent pas le contenu.

Events à traiter

Event Discord Struct Serenity Lien docs.rs
MESSAGE_DELETE MessageDeleteEvent https://docs.rs/serenity/latest/serenity/model/event/struct.MessageDeleteEvent.html
MESSAGE_UPDATE MessageUpdateEvent https://docs.rs/serenity/latest/serenity/model/event/struct.MessageUpdateEvent.html
MESSAGE_DELETE_BULK MessageDeleteBulkEvent https://docs.rs/serenity/latest/serenity/model/event/struct.MessageDeleteBulkEvent.html

Critères d'acceptation

  • Message supprimé : auteur (si en cache), salon, contenu, pièces jointes (URLs), timestamp.
  • Message édité : auteur, salon, ancien contenu (cache), nouveau contenu, lien vers le message (jump_url).
  • Bulk delete : nombre de messages supprimés, salon concerné.
    Si < 100 messages et présents en cache : générer un fichier .txt ou un pastebin-like avec les contenus ; sinon, log simple avec le compte.
  • Ne pas logger les messages provenant de salons présents dans ignored_channels.
  • Option ignore_bots (désactivable) pour ignorer les messages des bots.
  • Anti-boucle : les suppressions dans le salon de log ne se loggent pas elles-mêmes.

Notes d'implémentation

  • Intent obligatoire : MESSAGE_CONTENT.
  • Mettre en place un MessageCache limité (ex: LRU de 5-10k messages par guild ou global) pour ne pas exploser la RAM.
  • Le cache ne doit pas persister en DB, c’est de la mémoire volatile.
### Description Logger la suppression, l’édition et la suppression en masse de messages. **⚠️ Nécessite un cache interne des messages** car les events de suppression ne contiennent pas le contenu. ### Events à traiter | Event Discord | Struct Serenity | Lien docs.rs | |---------------|-----------------|--------------| | `MESSAGE_DELETE` | `MessageDeleteEvent` | https://docs.rs/serenity/latest/serenity/model/event/struct.MessageDeleteEvent.html | | `MESSAGE_UPDATE` | `MessageUpdateEvent` | https://docs.rs/serenity/latest/serenity/model/event/struct.MessageUpdateEvent.html | | `MESSAGE_DELETE_BULK` | `MessageDeleteBulkEvent` | https://docs.rs/serenity/latest/serenity/model/event/struct.MessageDeleteBulkEvent.html | ### Critères d'acceptation - [ ] **Message supprimé** : auteur (si en cache), salon, contenu, pièces jointes (URLs), timestamp. - [ ] **Message édité** : auteur, salon, ancien contenu (cache), nouveau contenu, lien vers le message (`jump_url`). - [ ] **Bulk delete** : nombre de messages supprimés, salon concerné. *Si < 100 messages et présents en cache : générer un fichier `.txt` ou un pastebin-like avec les contenus ; sinon, log simple avec le compte.* - [ ] Ne pas logger les messages provenant de salons présents dans `ignored_channels`. - [ ] Option `ignore_bots` (désactivable) pour ignorer les messages des bots. - [ ] Anti-boucle : les suppressions dans le salon de log ne se loggent pas elles-mêmes. ### Notes d'implémentation - **Intent obligatoire :** `MESSAGE_CONTENT`. - Mettre en place un `MessageCache` limité (ex: LRU de 5-10k messages par guild ou global) pour ne pas exploser la RAM. - Le cache ne doit pas persister en DB, c’est de la mémoire volatile.
raphael added this to the Logs System milestone 2026-05-31 01:51:13 +02:00
raphael added this to the TTY project 2026-05-31 01:51:14 +02:00
raphael self-assigned this 2026-05-31 01:51:16 +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#5
No description provided.