Anti domination bot

AI-generated summary

The Anti Domination Bot is a Discourse API experiment designed to discourage users from dominating a category. Created by ChrisBeach, the bot is already being used in the Politics category of one of his forums. The bot’s functionality includes sending public messages to users who dominate a category.

Codinghorror suggests a more effective approach would be to automatically limit the number of posts per category per day per user. ChrisBeach agrees, but notes that implementing this would likely require a plugin or setting change in the Discourse core.

Codinghorror also advises that public shaming is not effective and that the bot’s messages should be sent via private message instead. ChrisBeach points out that while education panels can be effective, they have limitations, such as not being visible on smartphones and being ignored by some users.

First experiment with the Discourse API: a bot which discourages users from dominating a category.

This is already proving useful in our opt-in Politics category on one of my Discourse forums.

I’m new to Discourse API development, so feedback and PRs appreciated :+1:

https://github.com/chrisbeach/anti-domination-bot

Screenshot

Configuration

Customise src/main/resources/application.conf.sample and save as src/main/resources/application.conf

See comments in file for instructions

Running with Docker

docker run -t \
    -v /path/to/your/application.conf:/root/src/main/resources/application.conf \
    chrisbeach/anti-domination-bot

NOTE: /path/to/your/application.conf is the location of your customised application.conf file and must be specified as an absolute path.

Running (Development)

NOTE: Requires SBT

sbt run

I think perhaps a better way to do this is automatically limit number of posts per category per day per user. That is, every user gets 3 posts (or whatever number is comfortable) they can make in the Politics category per day.

Yes, that would be a better way of governing the category (although I do quite like that the bot gives a public shaming :smile:).

Is there an setting in core that would allow such a rate limit, or would it need to be a plugin?

Not sure, but the “public shaming” should be a PM anyway, because “public shaming” is rarely a good idea.

Note that our just-in-time education panels only appear in the editor for the user triggering the education panel..

I’m a big fan of the education panels but a) smartphone users don’t see them and b) some people choose to ignore them.