matrix-org / mjolnir

A moderation tool for Matrix
Apache License 2.0
326 stars 55 forks source link

Protections: configurable actions #156

Open MichaelSasser opened 2 years ago

MichaelSasser commented 2 years ago

Is your feature request related to a problem? Please describe. We have a room with 4k+ users. Some of them are pretty fast typers. We are currently using the BasicFloodingProtection protection to buy us some time, when no moderators are around and someone starts flooding the room. The feature works great, but occasionally, the bot bans someone who was just typing really fast.

Describe the solution you'd like We would appreciate, if the bot could be configured to take different actions, especially for that one protection. For example:

For us, muting would be the best option. We don't need to change this on the fly, so having those options available in the config file would make use happy.

Describe alternatives you've considered We thought of disabling the feature entirely, but we would rather not. Users are currently not too happy about the current situation either.

BrenBarn commented 2 years ago

I feel like a better solution would just be the ability to set the threshold for the flood protection to any amount we like, like "X messages within Y amount of time".

Yoric commented 2 years ago

The user could be muted instead of banned (or whatever)

Sounds like a good idea generally. I believe that we should generally favor sanctions that can be undone, because errors happen, especially when it's automated.

The bot could send a configurable message to the room (/me ...), explaining, why the user has been muted (10 messages in the last minute) and that the moderators of the room will lift the restriction after review or so

Interesting idea. Need to ponder how easily this can be abused by e.g. spambots.

I feel like a better solution would just be the ability to set the threshold for the flood protection to any amount we like, like "X messages within Y amount of time".

We're planning to experiment with easy-to-configure thresholds, but no ETA yet.

MichaelSasser commented 2 years ago

Interesting idea. Need to ponder how easily this can be abused by e.g. spambots.

It does not need to be that specific, and it does not really need to be configurable if it transports the "right" information to the user. If the user just sees:

the_bots_name changed the power level of @your_user_id:matrix.org from Default to Custom (-1).

And "You do not have permission to post to this room", where you would normally type, would not be that great of a UX.

Well, yeah, it is better than "You have been banned for: spam" (or whatever the modal says, I haven't been banned before 😅).

I would like to see something that would calm me down in that situation, especially, when I'm new to matrix:

We're planning to experiment with easy-to-configure thresholds, but no ETA yet.

Cool! That might be an option too. But I think a combination of both would be a solid solution (for now). When the spambot operator are adapting, we could lower the count we've set and have the other solution still as fallback, in case someone hits the threshold. I assumed the count of 10 was chosen because otherwise rate limiting would take place before the bot could engage. But I seem to recall that default value set to something like 600 events or just m.text (?) per minute by default.

AnonyPla commented 2 years ago

I agree this would be a great addition, protections should be customizable to either kick/mute (+timer) /ban (+timer) ... or kick/mute and ban (if same issue within x seconds)