ctcp !@*:*:#: { if ($nick isreg #) { .signal -n d # $nick ctcp | halt } }
on !@*:ctcpreply:*: { if ($nick isreg #) { .signal -n d # $nick ctcpreply | halt } }
on ^!@*:text:*:#: { if ($nick isreg #) { .signal -n c # $nick $1- | halt } }
on ^!@*:action:*:#: { if ($nick isreg #) { .signal -n c # $nick $1- | halt } }
on ^!@*:notice:*:#: { if ($nick isreg #) { .signal -n c # $nick $1- | halt } }
on *:signal:*: {
if ($signal == c) {
if ($regex($3-,/[[:cntrl:]]/g) > 49) { .signal -n d $1-2 codes | halt }
if ($regex($3-,/[[:upper:]]/g) > 49) { .signal -n d $1-2 caps | halt }
if ($regex($3-,/\d/g) > 49) { .signal -n d $1-2 number | halt }
if ($regex($3-,/[[:punct:]]/g) > 49) { .signal -n d $1-2 symbol | halt }
if ($regex($3-,/[ $chr(174) ]/g) > 49) { .signal -n d $1-2 ascii | halt }
if ($regex($3-,/[ $chr(160) ]/g) > 49) { .signal -n d $1-2 blur | halt }
if ($regex($3-,/./g) > 199) { .signal -n d $1-2 lenght | halt }
if ($regex($3-,/(#|http://|www.|.com|.net|.org)/i)) { .signal -n d $1-2 advertise | halt }
if ($regex($3-,/\b(fuck|puki|pantat|suck|shit|bitch)\b/i)) { .signal -n d $1-2 swear | halt }
.hinc -u5m e $+($1,$2) 1
if ($hget(e,$+($1,$2)) > 4) { .signal -n d $1-2 lines | halt }
var %f = $+($2,@,$1,@,$hash($remove($3-,$chr(160),$chr(32)),32))
hinc -u5m e %f 1
if ($hget(e,%f) > 2) { .signal -n d $1-2 repeat | halt }
}
if ($signal == d) {
if ($2 ison $1) {
.hinc -u25m e g
if ($istok(%k,$hget(e,g),44)) { !kick $1 $2 $3 }
.hadd -u10m h $+($2,*@*dbzs*)
.timer_ 1 3 !mode $chan $1 $+(+,$str(b,$hget(h,*).item)) $hget(h,1).item $hget(h,2).item $hget(h,3).item $hget(h,4).item $hget(h,5).item $hget(h,6).item $hget(h,7).item $hget(h,8).item $hget(h,9).item $hget(h,10).item $hget(h,11).item $hget(h,12).item
.timer_2 1 4 !mode $chan $1 $+(+,$str(b,$hget(h,*).item)) $hget(h,13).item $hget(h,14).item $hget(h,15).item $hget(h,16).item $hget(h,17).item $hget(h,18).item $hget(h,19).item $hget(h,20).item $hget(h,21).item $hget(h,22).item $hget(h,23).item $hget(h,24).item
}
}
}