bot icon indicating copy to clipboard operation
bot copied to clipboard

Features we need before we can trial threads in topical channels

Open janine9vn opened this issue 3 years ago • 7 comments

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 !clean command 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!

janine9vn avatar Jul 10 '22 20:07 janine9vn

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?

ChrisLovering avatar Jul 10 '22 20:07 ChrisLovering

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.

ChrisLovering avatar Jul 10 '22 20:07 ChrisLovering

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.

shenanigansd avatar Jul 10 '22 20:07 shenanigansd

You can delete threads?

yea

ChrisLovering avatar Jul 10 '22 20:07 ChrisLovering

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.

wookie184 avatar Aug 17 '22 12:08 wookie184

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

graingert avatar Aug 19 '22 22:08 graingert

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 ?

shtlrs avatar Nov 19 '22 14:11 shtlrs