Combatting Commentspam in Quills
Straight from the kitchen.
For me part of the fun in blogging lies in receiving useful feedback in form of comments on entries. In fact, I think that frequency and quality of comments here are probably well above average (but then again, there’s no way to prove or disprove such a statement…)
Having a blog with open comments has become quite dangerous these days. Commentspam is everywhere. So far I’ve been pretty lucky but recently I’ve been hit by two or three waves that had affected pretty much all of the archives several hundred entries. Now, back in COREBlog days this wouldn’t have been much of a bother. While it doesn’t have any dedicated anti-spam measures, it was fairly easy and efficient to simply run a TTW-python script that one modified to suit the most recent spam-wave.
Not so in the case of Plone resp. its underlying CMF. Here commenting has been clearly implemented way before commentspam existed. Here, comments are not regular content objects that could, for instance, be queried via catalog or (thus) be the subject of a SmartFolder. No, they are children of a special ‘trackback’-node of any given content object. Not only that, they are also hierarchily organized, i.e. to get a linear list of all comments of a given object you must resort to recursion.
This makes it convenient to access and traverse a (hierarchical) discussion of a given object but rather cumbersome (and expensive) to search across all comments of a site. In essence, there are currently no comment management features available for Plone – neither as an installable Product nor as a quick-and-dirty script, at least not any that deal with existing comments (as opposed to moderation etc.)
A worthy subject of holiday-hacking for sure ;-) And I’m pleased to announce some initial success: I’ve just added a semi-functional comments deletion tab for Quills to the 0.9 branch. It simply lists all comments to weblog entries in reverse chronological order together with a checkbox to select an entry for deletion and a submit button to actually delete ‘em. Simple but effective – except for large numbers of comments… But even then it still beats clicking through all entries and then manually deleting each spam comment separately.
At any rate, after several weeks of defilement and after deleting well over 2500 comments(!) I can now finally (momentarily) declare this blog spam-free! Oh, and feel free to comment ;-)

