Skip to content

Conversation

@ZYancey
Copy link
Contributor

@ZYancey ZYancey commented Oct 23, 2025

/tag ( add / send / preview / list / remove )

Manage and use tagged images and links within your server. Tags are server-specific and tracked with usage statistics.

  • add - Create a new tag with a name and content (URL or text). Maximum 100 characters for name, 2000 for content.
  • send - Post a tag publicly in the channel. Automatically displays images as embeds.
  • preview - View tag details privately (ephemeral), including creator, use count, and creation date.
  • list - List all available tags in the server with their creators and use counts.
  • remove - Delete a tag you created. Admins can delete any tag.

Tag names support autocomplete for easy discovery.

Screenshot 2025-10-23 at 1 55 08 PM Screenshot 2025-10-23 at 1 56 25 PM

@ZYancey ZYancey self-assigned this Oct 23, 2025
@ZYancey ZYancey requested a review from a team October 23, 2025 19:56
@AverageHelper AverageHelper moved this to Code Review in CS Bot Dec 6, 2025
@AverageHelper AverageHelper added the enhancement New feature or request label Dec 6, 2025
@AverageHelper AverageHelper linked an issue Dec 6, 2025 that may be closed by this pull request
data: {
guildId,
name: name.toLowerCase(),
content,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rather than storing the tag content URL as-is, we should probably download the image data and store it somewhere (in the database or some file) to send later. This way we aren't relying on ephemeral hotlinks that may disappear or expire later at any time.

I'm not sure about text tags, but if we want arbitrary strings as well, then we can do both probably, somehow.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a way to launch a modal interaction with a file upload option, which might be useful: https://discordjs.guide/legacy/interactions/modals#file-upload

For example, /tag add could take no options, and instead launch a modal with a name field and a file input, as well as a field for alt text

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But anyway, in general I feel weird about allowing arbitrary text input in our first version of this, mainly because relying on external services is scary lol. I'd much prefer we limit the types of things that tags can be used for (only images/GIFs for now, since iirc that was all Ze-Kaiser supported) and download the data ourselves to serve when /tag send is invoked.

.setDescription('Manage and use tagged images/links')
.addSubcommand(subcommand =>
subcommand
.setName(AddSubcommand)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should /tag add and /tag remove be usable by non-admin users?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Status: Code Review

Development

Successfully merging this pull request may close these issues.

Slash Command - Tagging

3 participants