ctcp !@*:*:#: { if ($nick isreg #) { .signal -n a # $nick | haltdef } }
on !@*:ctcpreply:*: { if ($nick isreg #) && ($me isop #) { .signal -n b # $nick | haltdef } }
on ^!@*:text:*:#: { if ($nick isreg #) { .signal -n c # $nick $1- | haltdef } }
on ^!@*:action:*:#: { if ($nick isreg #) { .signal -n c # $nick $1- | haltdef } }
on ^!@*:notice:*:#: { if ($nick isreg #) { .signal -n c # $nick $1- | haltdef } }
on *:signal:*: {
$iif($signal == a,.signal -n d $1-2 ctcp))
$iif($signal == b,.signal -n d $1-2 ctcpreply))
if ($signal == c) {
$iif($regex($3-,/[[:cntrl:]]/g) > 49,.signal -n d $1-2 codes))
$iif($regex($3-,/[[:upper:]]/gS) > 49,.signal -n d $1-2 caps))
$iif($regex($3-,/\d/gS) > 49,.signal -n d $1-2 number))
$iif($regex($3-,/[[:punct:]]/gS) > 49,.signal -n d $1-2 symbol))
$iif($regex($3-,/[ $chr(174) ]/gS) > 49,.signal -n d $1-2 ascii))
$iif($regex($3-,/[ $chr(160) ]/gS) > 49,.signal -n d $1-2 blur))
$iif($regex($3-,/./gS) > 199,.signal -n d $1-2 lenght))
$iif($regex($remove($3-,$chr(40),$chr(41)),/(?:^|(\40|\240))((http+(:|s:)\/\/\S*)|((www\.{1})+(.*)+(\.{1})+(\w{2,3})\S*)|#[^\40]\S*)/Si),.signal -n d $1-2 advertise))
$iif($regex($3-,/\b([censored]||suck|[censored]|bitch|dick)\b/Si),.signal -n d $1-2 swear))
.hinc -u5m row $+($1,$2) 1
if ($hget(row,$+($1,$2)) > 4) { .signal -n d $1-2 lines }
hinc -u5m rep [ $+ [ $1 ] $+ [ $2 ] ] $hash($remove($3-,$chr(160),$chr(32)),32) 1
if ($hget(rep [ $+ [ $1 ] $+ [ $2 ] ],$hash($remove($3-,$chr(160),$chr(32)),32)) > 2) { .signal -n d $1-2 repeat }
}
if ($signal == d) {
if ($2 ison $1) {
.hinc -mu20 d y
if ($hget(d,y) < 22) { !kick $1 $2 $3 }
}
}