Is there any way to whitelist a member if they have a post count over a specified number? With my thousands of members, some of them are getting marked as spam. My members post thousands of times and I can trust them after 25 posts, for example. Any ideas? Maybe with a flag or maybe even a batch process that i can run every week or so?

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

pixture’s picture

Here's the same issue. (actually this issue is not for AntiSpam module but for Akismet module). Since AntiSpam is a successor of Akismet module, the same method should work.

Whitelist - do not check for spam if user is on whitelist
http://drupal.org/node/125671

Only the thing administer person needs to monitor the number of comments/nodes posted by authenticated users. You can create this list using the Views module. Then if the number of comments/nodes reaches the threshold number, you need to change the user's role from regular authenticated user to trusted authenticated user who can post comment/nodes without spam check.

z33k3r’s picture

Right, that is a hands on approach. Since it is not built in, does anybody know of a recipe to create this process automation?

pixture’s picture

You can create a small module that does this user role updating during cron run using hook_cron(). All it needs to do is get the list of the users who has posted more than certain number of posts (node? comment?) and then change their role to the one that has permission to post node/comment without being checked by AntiSpam module. This is not that difficult to develop.

pixture’s picture

AntiSpam Helper Module

Attached is a small AntiSpam Helper module created to do the work requested in this issue thread.

Currently it has only one helper function, which automatically upgrade the role of the user who has posted certain number of published nodes/comments to the specified trusted user role. If you create a new user role who can post nodes/comments without spam checking, you can use this helper module to automatically upgrade trustful users to the new role which does not require spam checking.

The role to be upgraded to, and the threshold number can be configured from the AntiSpam Helper module's settings page.

In the future, I will add more functions and release it as a seperate module, but for the time being I just release it as beta here at AntiSpam project page.

z33k3r’s picture

Wow! Awesome. I will have to give this ago and try-er-out tonight!

pixture’s picture

Assigned: Unassigned » pixture

Please note that it will keep the current user role and add a new role (which is specified by the settings page).
Currently, it runs at hook_cron() but no more than once a day. Since it checks all users it may take some time if the number of users is a lot.

Let me know if you find any problems.

Michael-IDA’s picture

pixture,

Any chance of updating this for D7?

Thanks,
Sam

JordanMagnuson’s picture

Version: 6.x-1.0 » 7.x-1.x-dev

This looks great! +1 for a D7 version, and an "official" module release.

rrswebsite’s picture

I triple that on a D7 version.

Everett Zufelt’s picture

Category: support » feature
NitroPye’s picture

Did a quick port of the module to D7. Works on our medium sized forum (3k users).

I think this should either be rolled into or turned into an official module. We wouldn't be able to use AntiSpam without it.

NitroPye’s picture

If I made a patch to get this helper into antispam itself could it be accepted and rolled in?

cfinke’s picture

Issue summary: View changes

For what it's worth, in other implementations that I've seen where a user gets whitelisted after they get over X number of non-spam posts, spammers will post a couple dozen nonsense or innocuous comments just to hit that threshold, then they start posting blatant spam that doesn't get checked at all because they've already been whitelisted.

apaderno’s picture

Assigned: pixture » Unassigned