TheOdinProject / odin-bot-v2

The bot that breathes life into our Discord community
ISC License
48 stars 77 forks source link

Add way to fetch & export message chains from Discord channels #619

Open thereisnodeveloper opened 1 month ago

thereisnodeveloper commented 1 month ago

Checks

Do you want to be assigned to this issue?

Description of the Feature Request

Export a message chain (thread of replies) from a specific channel in the TOP Discord. This feature would confer benefits that thread-like formats (forums, reddit) have. Examples of benefits below:

  1. Enhancing Discord search:

    1. (as-is): user needs to search for a particular message, then click around to navigate across its replies. Manual and inconvenient
      1. Each message shows up separately in Discord search results, clogging up the results.
      2. There's no way to search within a message chain
  2. Creating or referencing GitHub Issues: -

    1. Often, Discord discussions are referenced in the creation of Issues on Github.
    2. Linking 1 message for reference- difficult to capture the entirety of discussions held on discord. Linking multiple messages - manual, time consuming
  3. Creating a FAQ / knowledge base

    1. Grouping messages into chains means that it's easy to identify what a Question is by looking at which message started the chain, and the answers + following discussions.
    2. This then allows grouping of each chains by same/similar questions, which leads to identifying most frequently asked questions, and compare answers to the same question.
  4. Support retro-active creation of threads

    1. Could be done perhaps by supporting a separate /thread command (Admin Only?)
    2. Users often don't realize a message chain is thread-worthy until it's too late. Then if they want to create a thread, they have to manually create a thread and link/paste messages
  5. Decision Logging: Threads could be pulled to log decision-making conversations about the curriculum, Discord server, etc. for future review.

  6. Moderation and Record-Keeping: mods/admins can easily pull message chains from problematic conversations or reports, making it easier to document/make decisions on issues.

Example trigger command:

/message-chain [link to 1st message], [number of messages] (default: last 20 messages, max )

A more expensive but convenient form would be to let users use ANY of the messages in a chain, and the bot can traverse both backwards and forwards to find the beginning and end of the message chain

Acceptance Criteria

- [ ] Enable users to quickly fetch the last N messages in a conversation.
- [ ] Export the fetched conversation in a clean, markdown-friendly format suitable for reading, referencing in GitHub issues, and other documenting activities.
- [ ] Expose results to other potential commands that can build upon this "/message-chain" command, such as `/create-thread` or `/faq`.
- [ ] (optional) in the style of "Bookmark" emoji reaction feature, the command sends the chain of messages in one grouping as a direct message to the user.

Additional information

No response

MaoShizhong commented 3 weeks ago

Thanks for the suggestion. I love the idea but have some big considerations that make me sceptical of a practical implementation of this:

Would like to hear from @TheOdinProject/odin-bot in case there are things I haven't considered.