Anyone else got a spam problem? I work for New Relic and we use discourse for our support forum. But, we started getting a lot of spam and it was becoming a problem. Akismet is a well known tool in the Wordpress world that has some algorithm for detecting when a post is spam. I wrote a plugin that allows discourse posts to be filtered through Akismet and I'd like to share it with the discourse community. We have been using it in production for about a week, so it is not super battle tested. PRs for improvements are welcomed.
You can find the plugin here https://github.com/verdi327/akismet
I wrote a good deal in the Readme about how the plugin works, but i'll go over the basics again here...
All new posts are gathered in a background job every 10 minutes and sent to Akismet. If Akismet says the post is spam we preemptively delete it. If you're an admin, you'll see the post as being hidden, if you're a normal user you will have no idea the post ever existed.
All new spam posts are placed inside of a moderator queue that is only accessible to admins. From here you can...
- confirm the post was spam
- recover the post if it was wrongly accused, which undeletes the post and sends the post back to Akismet to make it's algorithm smarter to hopefully avoid again in the future.
- take the nuclear option and delete the user, which removes all their posts and topics and blocks their email and ip address (the email and ip address blocking only happen in production).
To get to the moderator queue, go to /admin
After clicking, you'll see the moderator queue...
Finally, the plugin comes with Hipchat support out of the box, you just need to set some ENV variables. When new spam is caught, it will ping the room and give you a link to moderator queue (only in production).
I'm not sure which versions of discourse the plugin will work for, we have been using it off the latest 1.2.0.beta2. Again, you can find the plugin here https://github.com/verdi327/akismet
Hope this helps you out