1 So I have enabled the [[moderatedcomments]] plugin on my wiki. and good thing that! around 1000 spammy comments showed up in the last 3 months! Awful!
3 It's pretty hard to figure out the ham and the spam in there. One thing I was hoping was to use the power of the commandline to filter through all that stuff. Now, it seems there's only a "ikiwiki-comment" tool now, and nothing to examine the moderated comments.
5 It seems to me it would be great to have some tool to filter through that...
8 So it turns out it was over 3000 comments. The vast majority of those (every one but 42 comments) were from the IP `46.161.41.34` which i recommend null-routing everywhere. I used the following shell magic to figure that out:
15 cd .ikiwiki/transient || {
16 echo could not find comments, make sure you are in a ikiwiki source directory.
19 # count the number of comments
20 echo found $(find . -name '*._comment_pending' | wc -l) pending comments
21 # number of comments per IP
23 find . -name '*._comment_pending' | xargs grep -h ip= | sort | uniq -c | sort -n
24 # generate a banlist for insertion in `banusers`, assuming all the
25 # pending comments are spam
26 echo banlist would look like:
27 find . -name '*._comment_pending' | xargs grep -h ip= | sort -u| sed 's/ ip="//;s/"//;s/^/- ip(/;s/$/)/'
29 echo to remove comments from a specific IP, use one of those:
30 find . -name '*._comment_pending' | xargs grep -h ip= | sort -u \
31 | sed 's/ ip="//;s/"//;' \
33 echo "find . -name '*._comment_pending' | xargs grep -l 'ip=\"$ip\"'| xargs rm"
35 echo to flush all pending comments, use:
36 echo "find . -name '*._comment_pending' -delete"
39 The remaining 42 comments I reviewed throught the web interface, then flushed using the above command. My final addition to the banlist is:
60 Update: i made a script, above. And the banlist is much larger now so the above list is pretty much out of date now... --[[anarcat]]