when I just read the repeat script fix request, I came up with 3 suggestions for your repeat detection:
1st:
Code: Select all
set arg [string tolower [stripcodes abcru $arg]]
using this one before the 2nd if in the proc would reduce the possibilities to trick the script.
2nd:
Code: Select all
if { [string length $arg] > 32 } {
set arg [md5 $arg]
}
this could save some memory on larger spams, regardless if they are repeats or not. md5 checksum is supposed to be generated very fast and will still identify lines very dependably. however using it on lines shorter than 32 characters would be a waste, because the checksum is always 32 bytes long ^-^.
3rd:
you use $nick:$arg:$chan, however I like more the idea to use $uhost:$arg:$chan. So suggest you to add a switch to change between these 2 (like to use set repeatf(ident) {$nick} and [subst $repeatf(ident)] or something like that ^-^.