Skip to content

Port Quote Feature to Community Bot #101

Description

@hmd-ali

Port Quote Feature to Community Bot

Port the current Quote feature from tags-bot to the community bot so users can paste Discord message links and receive a formatted quote while preserving the original message content and context.

Acceptance Criteria

  • When a user posts one or more Discord message links from the current server, the bot fetches each referenced message and creates a quote for every successfully resolved message.
  • The bot ignores messages without Discord message links.
  • Bot and system-authored messages do not trigger the Quote feature.
  • A quoted message includes:
    • The original message content, truncated to Discord’s embed description limit when necessary.
    • The original author’s username and avatar.
    • The original channel name.
    • The original message timestamp.
    • A Jump to message link button pointing to the original message.
  • Rich embeds from the original message are preserved, excluding unsupported embed types, and the bot does not exceed Discord’s per-message embed limit.
  • Image attachments are rendered in the quote without being duplicated, and other attachments are preserved.
  • Sticker-only messages are represented with an appropriate sticker placeholder.
  • Empty messages with no content, embeds, attachments, or stickers are not quoted.
  • If a user posts only valid message links, the original link-only message is deleted after at least one quote is successfully created.
  • If a user includes text alongside message links, the original message remains and the first generated quote replies to it.
  • If multiple message links are included, the bot creates one quote for each successfully fetched message.
  • Invalid, inaccessible, deleted, or non-text-channel message links are skipped without preventing valid links in the same message from being quoted.
  • Quoting an existing quote preserves the original author, channel, and jump link while updating the attribution to identify the new user who quoted it.
  • Components V2 messages retain their existing components and receive a quote attribution line without converting them into a legacy embed.
  • Bot-generated quote messages are associated with the requesting user so the existing message-removal behavior can delete them when that user reacts with the configured delete emoji.
  • Quote messages are eventually removed by the existing expired bot-message cleanup process.
  • All quote-generated mentions are suppressed; quoting a message must not notify the original author or other mentioned users.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions