bot
bot copied to clipboard
Features we need before we can trial threads in topical channels
Description
We'd love to trial people having the ability to create threads within topical channels to have more focused and less disruptive help sessions.
In some of the busier topical channels, you'll often have multiple help chats going on at the same time. This can make it overall difficult to follow, a bit harder to help. It also may not be feasible to shift to a help channel because some of the help may be back and forth over a few hours, depending on availability of the people and scope of the issue.
Limitations To Make This Reasonable
Of course, because the internet is the internet we can't let this be a free-for-all. So we'd like to set some limitations to what people can do:
- [ ] limit of 1 new thread per day across all the topical channels per person
- [ ] Ensure our filters will check for creation and edits to the thread name
- [ ] Ensure reasonable default timeouts for threads, and once archived can only be brought back by the thread creator or a staff member/mod
- [ ] Double check our
!cleancommand will function correctly and also erase the thread from existence
Once the above steps are complete, we can begin trialing letting users create their own threads within topical channels in specific topical channels such as: #data-science-and-ai and #user-interfaces!
Ensure reasonable default timeouts for threads, and once archived can only be brought back by the thread creator or a staff member/mod Make sure bringing back a thread also respects the cooldown, re-archiving it if the user is currently on cooldown.
On question I have right now is what wee would expect to happen if the name is found in violation of our filters. Maybe just hard-deleting and notifying mods?
Also as for implementation, I think a redis cache of member_id: cooldown_expiry_ISO_datetime would be good here. making sure that on startup the bot uses await guild.active_threads() to ensure the cache is up to date.
On question I have right now is what wee would expect to happen if the name is found in violation of our filters. Maybe just hard-deleting and notifying mods?
You can delete threads? I would also notify the user, so they know that it was actually deleted, and not just an error, so they don't keep retrying.
You can delete threads?
yea
limit of 1 new thread per day across all the topical channels per person
I'm not sure about this, especially if the only way to enforce it would be auto-deleting further threads, which would be quite annoying (not sure we could easily prevent opening threads with permissions?).
If someone was helping they could reasonably want to reply in threads to someones message in a fast-moving channel, so I think there's a pretty good use case for opening lots of threads in a day, especially in channels like discord-bots.
One thread per day sounds a bit limiting, I'd recommend that opposite approach and use something like needle to force threads for every message
What if we allow creating 1 thread per user via a command ? That way we can have more control over how many threads a user can open, and it can be scoped in terms of allowed channels ?
The limit would still be one thread / user / topical channel, and we can use the redis cache to store how many threads this user has open in a particular channel to determine whether we should allow it or not.
However, we run the risk of having our Redis DB die, which will allow users to create another thread if they want.
We'd also need to make sure that these threads are active (last message is less then a day old for example), and then we'd archive/delete the thread accordingly ?