DiscordChatExporter reads a channel's messages and writes them to a file, so a conversation is kept when a server is not. It is a small C++ program with one writer per output format behind a shared interface.
Output
- Plain text, for reading and searching.
- JSON, for another program to read.
Messages are fetched in the order they were sent and written as they arrive, each with its author, time, content, attachments, embeds, reactions and stickers. Discord's rate limits are tracked and waited out rather than tripped.