Version: 1.3.2, by El_Muerte
Developer Last Online: Jan 2023
Category: Moderators Functions -
Version: 3.6.x
Rating:
Released: 08-15-2007
Last Update: 08-29-2007
Installs: 44
DB Changes Uses Plugins Template Edits
Re-useable Code Additional Files Translations
No support by the author.
Akismet is an spam detection engine that is mostly used by blogs to check the comments for spam. But it can also be used for forum posts. It is not a definite protection against spam.
This plugin for vBulletin 3.6 will check every thread and reply if it is considered as spam. If it is spam it will put the offending thread or reply in the moderator queue.
In order to use Akismet you need to get a API key. You can get one by signing up on WordPress. The Akismet service is free for personal use. Check the Akismet website for more information.
This vBulletin plugin is available under the terms of the GNU Lesser Public License.
Installation instructions are available in the ZIP archive.
Features
Scan for spam in new threads and post
Scan content edits
Automatically put identified spam in the moderation queue
Report posts as spam or ham (individual post or through inline moderation)
Limit spam detection to post count and user groups
Extendable through hooks
Changelog
v1.3
Added an akismet activity log in the admincp
v1.2
Fixed an invalid URL issue when using cURL
v1.1
Option to send parsed post data
Option to send additional webserver request data for the initial spam check
Removed product version query
Added extra information when reporting a post
Only check API key when entered in the vBulletin options, not for every Akismet request
v1.0
Various bug fixes: report post submitted wrong data; few missing phrases
More code documentation
This plugin now exposes some hooks that others can use to extend the feature set. Like give users infractions when posts are considered spam.
v0.3
Added options to exclude posts from checking based on user's postcount and usergroups
Added mass reporting of ham/spam through the inline moderation system.
Improvements of the internal code
v0.2
Check spam status on edits
Add report as ham/spam functionality (requires template edit)
Show Your Support
This modification may not be copied, reproduced or published elsewhere without author's permission.
I assume this doesn't put a performance (or bandwidth consumption) drain on the system when it's checking externally against their database?
Depends on what you call a drain. Post will only be checked when they are created or edited. Only the post body (and a few other pieces of information) will be send to the akismet servers. This traffic is much less than an average user viewing the forum.
Starting from 0.3 you can limit the spam checking a bit. E.g. don't check spam for users in certain usergroups and/or check users with less that X posts (defaults to 50). Spammers are usually new users. No real need to check with established users.
50 might be a bit on the high side since it would take the user 50*post delay before he will get around the spam checking. For example if your post delay is 30 seconds it will take the spammer at least 25 minutes before he can start spamming the forum and get away with it. Of course the each post being made must be a valid post.
Depends on what you call a drain. Post will only be checked when they are created or edited. Only the post body (and a few other pieces of information) will be send to the akismet servers. This traffic is much less than an average user viewing the forum.
Starting from 0.3 you can limit the spam checking a bit. E.g. don't check spam for users in certain usergroups and/or check users with less that X posts (defaults to 50). Spammers are usually new users. No real need to check with established users.
50 might be a bit on the high side since it would take the user 50*post delay before he will get around the spam checking. For example if your post delay is 30 seconds it will take the spammer at least 25 minutes before he can start spamming the forum and get away with it. Of course the each post being made must be a valid post.
Great feedback, that's what I suspected about bandwidth and load....
Your 0.3 enhancements (and logic) are right on the money. Spammers on our systems are usually one-timers. They show up, go through the registration process including even doing the email validation, then they post 1 or 2 messages selling porno, drugs or cameras in a couple of public forums. We catch them, ban them and move on.
So, your usergroup check and amount of posts made measurements are exactly how to maximize the mod and minimize the activity.
Ok, this product is now complete. Everything I planned to add has been added. Other programmers can extend the functionality through the exposed hooks in the code.
post content is sent in bbcode format to Akismet; wouldn't it be better to parse it first?
verifykey is called each time a comment is posted; wouldn't it be sufficient to use verifykey at the time when the key is entered in admincp?
an additional query is used every time a comment is posted to determine the installed product version; wouldn't it be sufficient to use a define for the product version and to save the query?
1) I don't know. There is not much info on how akismet really check the content. And spammer often use standard messages for all spam runs, parsing to bbcode could result in different content for each forum.
2) Probably. The documentation isn't very clear on that subject. Then again, if the key is invalid it will probably be notified in the spam check or report.
3) I felt lazy, didn't want to update the define everytime I changed the file. Then again, it's a little effort for a more or less useless query.
Just installed v1.1 and now I have an error under the AdminCP function....
Quote:
API Key
The key required to interface with Akismet.
To acquire a key you have to create an account at WordPress
Error: You did not enter a valid value for this setting.
I have a valid key and haven't touched this field since I original installed the mod and received the key from Wordpress. The error appeared after installing v1.1.
Hope this helps find the bug....
Should I try to do an overwrite and replace v1.1 backwards with v1.0?