bot icon indicating copy to clipboard operation
bot copied to clipboard

Extend Remind Command Functionality

Open HassanAbouelela opened this issue 4 years ago • 10 comments

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.

HassanAbouelela avatar Dec 15 '20 23:12 HassanAbouelela

Sir Lancebot already have issue about getting copy of bookmark: python-discord/sir-lancebot#341.

ks129 avatar Dec 19 '20 09:12 ks129

Thanks, edited my comment to remove the bookmark part.

HassanAbouelela avatar Dec 19 '20 20:12 HassanAbouelela

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?

MarkKoz avatar Jan 03 '21 17:01 MarkKoz

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.

HassanAbouelela avatar Jan 03 '21 17:01 HassanAbouelela

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?

onerandomusername avatar Dec 13 '21 01:12 onerandomusername

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.

HassanAbouelela avatar Dec 13 '21 10:12 HassanAbouelela

True, that makes sense.

onerandomusername avatar Dec 13 '21 18:12 onerandomusername

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. image

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)".

hedyhli avatar Mar 23 '24 08:03 hedyhli

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).

MarkKoz avatar Mar 23 '24 18:03 MarkKoz

Yes, all mentions are pinged as message content together with the reminder embed sent publicly:

image

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.

hedyhli avatar Mar 24 '24 01:03 hedyhli