On our bot we are using the Anti Abuse script from then archive and it works but we would like to make it so that is case sensitive for the comparisons. I have tried to contact the author but the e-mail address is no good any more.
I believe the problem is here:
Code: Select all
foreach badword [string tolower $badwords] {
if {[string match *$badword* [string tolower $args]]} {
So the question is what can I do to fix the script so that the comparisons are done in a case sensitive manner?
Here is the whole script:
Code: Select all
### Introduction
# Anti Abuse Script
# SadSalman <-> salman.mehmood@gmail.com
# Version No: 0.2
### Features:
# * Sets a 2 Minute Channel ban on user who writes any of the
# defined bad words
# * Doesn't ban users with +o OR +f flags
# * Logs ALL user/op messages containing the defined words
# * Strips Character Codes from Messages
### Set Bad Words that you want the Bot to Kick on
set badwords {
"PERV"
"[censored]"
"nigger"
"nigga"
}
### Set Your Ban Reason
set badreason "You used word unacceptable in this channel"
### Set Ban Time
set bwduration 120
### Begin Script:
## (Don't change anything below here... Unless you know tcl)
## Binding all Public Messages to our Process
bind pubm - * filter_bad_words
### Borrowed from awyeahs tcl scripts (www.awyeah.org) ###
## awyeah said: Thanks to user and ppslim for this control code removing filter
proc ccodes:filter {str} {
regsub -all -- {\003([0-9]{1,2}(,[0-9]{1,2})?)?|\017|\037|\002|\026|\006|\007} $str "" str
return $str
}
## Starting Process
proc filter_bad_words {nick uhost handle channel args} {
global badwords badreason banmask botnick bwduration
set args [ccodes:filter $args]
set handle [nick2hand $nick]
set banmask "*![lindex [split $uhost @] 0]@[lindex [split $uhost @] 1]"
foreach badword [string tolower $badwords] {
if {[string match *$badword* [string tolower $args]]} {
if {[matchattr $handle +f]} {
putlog "-Anti Abuse Script- $nick ($handle) with +f flags said $args on $channel"
} elseif {[matchattr $handle +o]} {
putlog "-Anti Abuse Script- $nick ($handle) with +o flags said $args on $channel"
} else {
putlog "-Anti Abuse Script- KICKED $nick on $channel matched by $args"
putquick "KICK $channel $nick :$badreason"
newchanban $channel $banmask $botnick $badreason $bwduration
}
}
}
}
bind pubm - * filter_bad_words
putlog "SadSalman's Anti Abuse Script Loaded"
Barkeep