Ok, so there’s probably a bunch of anti-spam miranda plugins already. I don’t remember any of them to have either dynamic captcha or Bayes filtering, though. And since both have already become quite popular, I figured it was just about time to write one.
It was supposed to be a multi-protocol plugin right from the start, but it appeared that only one protocol actually needs an anti-spam feature. ICQ that is. Other protocols like MSN or Jabber don’t seem to have that urgent need in anti-spam feature. Anyhow, only ICQ protocol accounts are supported so far.
The logic of Spam-o-tron is simple. We will leave Bayes alone for now. By default, any message or authorization request from a not-in-list contact is blocked and contact is hidden until verified to be a human. You have two options to do that so far: a challenge request with static response (“no-spam” by default) and a simpe dynamic math expression like 3 + 2 (generated randomly). Numbers are 1 to 10 so that no one needs a calculator to get an answer. Upon receiving correct answer contact gets approved and optionally gets added to the contact list.
By default Bayes is in learning mode. That is no actions are being done to block or pass through a message. If a contact gets approved, his previous messages are considered ham and are added to a Bayes database. If a contact doesn’t respond with a correct answer for 2 days all previous messages are considered spam. The database is an SQLite database located in Plugins/spamotron folder. Since ICQ spam is not that frequent as email spam, you might need some time for Bayes engine to learn sufficient number of messages. To speed things up you have an option to manually learn any message as spam or ham. A good place to start is a System history. Mine had a lot of spam authorization requests. Having learned at least 50 of spam and 20 of ham messages you may try to enable blocking of messages with a high spam score and/or automatically approve contacts with a low score. Both are configurable.
All the options should be self-explanatory but questions are welcome.
Download: Spam-o-tron 0.0.2.0 Unicode
This one is a first public release, be ready for something to go wrong :)