bot
bot copied to clipboard
Extend Remind Command Functionality
Description
The remind command is a useful feature, particularly when working on projects on the server. The way it is currently set up, you have to invoke the command yourself or get mentioned to get a reminder, but I think a useful feature would be allowing users to "+1" on other's reminders. This is a feature that exists in other reminder systems, such as the remindme bot on reddit.
This feature would make it easier to work on things together and keep track of other's progress, without flooding the reminder system, and would make it easier for people to setup reminders in general.
Implementation
Implementation shouldn’t be too difficult, as the reminder system is already capable of reminding multiple people at once.
In terms of how people would add themselves, the bot adds a reaction to bookmarks, and something similar can be done with reminders. The reactions can be used as a method of opting-in to a reminder. Either that, or reactions on the confirmation message. Preferably, you wouldn’t have to type anything, or you might as well create your own reminder right below the other one, or mentioning the other one.
Sir Lancebot already have issue about getting copy of bookmark: python-discord/sir-lancebot#341.
Thanks, edited my comment to remove the bookmark part.
Would removing a reaction opt-out of the reminder? If so, would people spam-toggling the reaction be a concern for the reminders endpoint of our API?
I hadn't considered any extra opt-out functionality besides canceling, but if we want to implement something like that, we might have to add a cooldown. Regardless, I don't think we should necessarily react to users when they opt-in/opt-out, so the only concern would be from a bot resource standpoint.
One way to combat that would be to not run all the extra checks of whether the user has permission or not, etc, but to just add/remove users from a list. The checks would still run for the initial message, but the reactions just interact with a list.
How would edits be handled? If a user opts in, and then the initial user deletes or modifies it, would it modify it for all users, or create a copy for themselves?
I don't see a reason to complicate this. If it's deleted or edited, we just send whatever we have at the time it's supposed to be delivered. If that means not sending a reminder, so be it.
True, that makes sense.
Is this issue approved? If so, I'd be interested in working on this.
I made a quick prototype using the UI interaction button (similar to .bm
), which will not support opt-outs at all.
However, using reactions as originally proposed lets the original author see who also opted-in to be notified. With this approach we'd have to perhaps have it edit the original affirmation message to "and will mention N+1 other(s)".
Yes, you can start working on it.
We should probably be moving away from using reactions; the button is better UX. I don't think the ability to see who else added themselves is important; editing the message with the new count is sufficient, but I do not consider that a strict requirement.
We will have to keep in mind the limits on how many people can be mentioned (if it sends DMs instead then that does not matter, but I forget how this command works).
Yes, all mentions are pinged as message content together with the reminder embed sent publicly:
So the mention limit will just be the 2000 character limit, counting all mentions to be in the <@ID>
form. On average, the character limit might be exceeded when >90 different people click on the button to get mentioned, if I'm not mistaken.