CybertownRevival / ctr

Full source code for the Cybertown Revival project
18 stars 8 forks source link

Basic community moderation tools #99

Open TheMikeSanto opened 2 years ago

TheMikeSanto commented 2 years ago

We're starting to see some trolls coming into chat and spitting racial slurs. How should we handle this?

Moderation is always a huge mess to handle, but I think we should start taking some small steps to address this sooner rather than later.

TheMikeSanto commented 2 years ago

@dburleson I had a conversation with @smile0711. They might be interested in taking on some of this work. We should figure out what we think would be most useful for tackling this at our current stage of development.

I'm pretty anti-censorship, but there are a few words that I wouldn't mind filtering out automatically.

I think we should come up with a (small) list of disallowed terms that we refuse to allow on the system. When a user sends a message containing a word in the list, the socket server would just drop it without broadcasting to the other clients. The message could still show up in the offending user's chat window, but nobody else would see it. From there we could potentially implement some kind of rudimentary shadow ban system, but for the time being we can always just 'ban' people by going into the db and doing it by hand.

Doing anything much more than that is a whole can of worms of issues and tooling that we're not prepared to deal with right now.

Thoughts?

cc @lordrayken

smile0711 commented 2 years ago

I've been playing with the db on my development and the user's status code seems to have no effect right now on if they can log in or not. A ban check will need to be added to the login code if that is something we are looking for. Add far as banning specific words, there are a handful that I think as a community, none should have a problem with banning (i.e. racial slurs). We are not looking to ban everything, just ones that have no business ever being said.

TheMikeSanto commented 2 years ago

@smile0711 If you're ready to go, I'd say go ahead and implement just the chat filter that we discussed. We can decide where to go from there once that's done.