X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/75bb0df5280deb28107c5e4a4b2f58f59c27ef7c..b63f1260eef70cf7eb1703ebae1244db7cef0583:/doc/todo/commandline_comment_moderation.mdwn diff --git a/doc/todo/commandline_comment_moderation.mdwn b/doc/todo/commandline_comment_moderation.mdwn index 8cce512ee..429c11536 100644 --- a/doc/todo/commandline_comment_moderation.mdwn +++ b/doc/todo/commandline_comment_moderation.mdwn @@ -2,4 +2,59 @@ So I have enabled the [[moderatedcomments]] plugin on my wiki. and good thing th 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. -It seems to me it would be great to have some tool to filter through that... --[[anarcat]] +It seems to me it would be great to have some tool to filter through that... + + +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: + +
+#!/bin/sh + +set -e + +cd .ikiwiki/transient || { + echo could not find comments, make sure you are in a ikiwiki source directory. + exit 1 + } +# count the number of comments +echo found $(find . -name '*._comment_pending' | wc -l) pending comments +# number of comments per IP +echo IP distribution: +find . -name '*._comment_pending' | xargs grep -h ip= | sort | uniq -c | sort -n +# generate a banlist for insertion in `banusers`, assuming all the +# pending comments are spam +echo banlist would look like: +find . -name '*._comment_pending' | xargs grep -h ip= | sort -u| sed 's/ ip="//;s/"//;s/^/- ip(/;s/$/)/' + +echo to remove comments from a specific IP, use one of those: +find . -name '*._comment_pending' | xargs grep -h ip= | sort -u \ + | sed 's/ ip="//;s/"//;' \ + | while read ip; do + echo "find . -name '*._comment_pending' | xargs grep -l 'ip=\"$ip\"'| xargs rm" + done +echo to flush all pending comments, use: +echo "find . -name '*._comment_pending' -delete" ++ +The remaining 42 comments I reviewed throught the web interface, then flushed using the above command. My final addition to the banlist is: + +
+- ip(159.224.160.225) +- ip(176.10.104.227) +- ip(176.10.104.234) +- ip(188.143.233.211) +- ip(193.201.227.41) +- ip(195.154.181.152) +- ip(213.238.175.29) +- ip(31.184.238.11) +- ip(37.57.231.112) +- ip(37.57.231.204) +- ip(46.161.41.34) +- ip(46.161.41.199) +- ip(95.130.13.111) +- ip(95.181.178.142) ++ + --[[anarcat]] + +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]]