rust-community-discord / ferrisbot-for-discord

Rust programming language bot for Discord
MIT License
36 stars 12 forks source link

Add support for reminders #46

Open dawnofmidnight opened 1 month ago

dawnofmidnight commented 1 month ago

(part of the Carl ⇒ Ferris migration) (pending discussion from mods, wait for approval to implement)

We'd like to add support for reminders to Ferris. This is useful both for personal usage across members and moderation usage, e.g. to remember to check up on a particular user after some period of time.

At minimum, we should have support for [?/]remind <time spec> <message>, which DMs the user at the specified time specification with the contents of their reminder, a timestamp indicating when it was made, and link back to that original creation point. I don't believe there's any particular reason for this command not to work in DMs as well.

I would also like to separately propose (i.e. this is pending discussion) a version of this command which replies (with a ping) in the same channel where the reminder was made. This is, again, useful for the moderation case as more than one mod is able to check on whatever the contents are.

troiganto commented 2 weeks ago

I know Carl used to run into performance issues due to the sheer amount of reminders it had to store and keep track of. Given the propensity of our members for Shenanigans™, whoever implements this will likely want to add reasonable limits on:

  1. the maximum duration of a reminder
  2. the number of reminders per user
  3. probably also the length of the message to be stored

The most obvious use case is for reminders of todo items for within 24h, but I've also seen people use it for birthday reminders and reminders of anniversaries so many years into the future that they'll likely outlive both Carl and Discord as a whole.