set bwLog "badwords.tcl"
set bwChan "#maghreb";
set logchan "#test";
# YOU SHOULDN'T MODIFY ANTYTHING BELOW THIS LINE
set bwRun 1
set bwArray() ""
set bwNumber 0
set bwFilename "./scripts/db/badwordsfile.txt"
#################
## PUTQUICK ##
#################
proc putquick {arg} {
append arg "\n"
putdccraw 0 [string length $arg] $arg
}
############################################################################
# SURVEYpub proc
############################################################################
bind pubm - * bwSurveypub
proc bwSurveypub {nick uhost hand channel args} {
global bwLog bwChan bwArray bwNumber bwRun
set channel [string tolower $channel]
if { "#maghreb" != $channel } {
return 0
}
if { ([isop $nick "#maghreb"])||([matchattr $nick o|o "#maghreb"])||([isvoice $nick "#maghreb"]) } {
return 0
}
set args [join $args]
set args [string tolower $args]
for {set i 0} {$i < $bwNumber} {incr i} {
if { $bwArray($i) != "" } {
set badw [join $bwArray($i)]
set dummy ""
set bwtime [clock format [clock seconds]]
if { [regsub -all "$badw" $args "" dummy] } {
putquick "privmsg "#test" :\002\00312Mot interdit: \0031$nick \00312a pornoncé \002\00304($badw) \00312sur\00306 ($channel) \00312à\00301 $bwtime !"
}
}
}
return 0
}
############################################################################
# SURVEYact proc
############################################################################
bind ctcp - ACTION bwSurveyact
proc bwSurveyact {nick uhost hand channel keyword args} {
bwSurveypub $nick $uhost $hand $channel $args
return 0
}
############################################################################
# LIST proc
############################################################################
bind pub -|- !bwlist bwList
proc bwList {nick uhost hand channel args} {
global logChan bwArray bwNumber bwRun
set channel [string tolower $channel]
if { "#test" != $channel } {
return 0
}
putlog "$nick ($uhost) uses !lst"
set txForbidden ""
set nWords 0
for {set i 0} {$i < $bwNumber} {incr i} {
if { $bwArray($i) != "" } {
set txForbidden "$txForbidden $bwArray($i)"
incr nWords
}
}
if { $nWords == 0 } {
putquick "NOTICE $nick :\002\00312Mots interdits: \0036la liste est vide."
} else {
putquick "NOTICE $nick :\002\00306 Liste des Mots interdits:"
putquick "NOTICE $nick :\002\00312Mots interdits:\002 \00304$txForbidden"
putquick "NOTICE $nick :\002\00306 Fin des Mots interdits:"
}
return 0
}
############################################################################
# ADD proc
############################################################################
bind pub o|o !bwAdd bwAdd
proc bwAdd {nick uhost hand channel args} {
global bwLog bwChan bwArray bwNumber bwFilename bwRun
set channel [string tolower $channel]
if { "#test" != $channel } {
return 0
}
if { ![isop $nick "#test"] } {
putquick "NOTICE $nick :\002\00304Accès refusé. \00301Vous devez être au minimum \00304OP\00301 sur \00312$channel ."
return 0
}
if { $args == [list {}] } {
putquick "NOTICE $nick :\002\00312Mots interdits :\002 \00306Syntax \00304!bwAdd Mot interdit"
return 0
}
set args [string tolower $args]
putlog "$nick ($uhost) uses !bwAdd (word is : '$args')"
for {set i 0} {$i < $bwNumber} {incr i} {
if { $args == $bwArray($i) } {
putquick "NOTICE $nick :\002\00312Mots interdits:\002 \00304'$args' \00312existe déjà."
return 0
}
}
set bwArray($bwNumber) "$args"
incr bwNumber
putquick "PRIVMSG #test :\002\00312Mots interdits :\002\ ajout de\00304 '$args'"
bwWritefile
}
############################################################################
# DEL proc
############################################################################
bind pub o|o !bwDel bwDel
proc bwDel {nick uhost hand channel args} {
global bwLog bwChan bwArray bwNumber bwFilename
set channel [string tolower $channel]
if { "#test" != $channel } {
return 0
}
if { ![isop $nick "#test"] } {
putquick "NOTICE $nick :\002\00304Accès refusé. \00301Vous devez être au minimum \00304OP\00301 sur \00312$channel ."
return 0
}
if { $args == [list {}] } {
putquick "PRIVMSG #test :\002\00312Mots interdits :\002 \00306Syntax \00304!bwDel Mot interdit"
return 0
}
set args [string tolower $args]
putlog "$nick ($uhost) uses !bwDel (word is : '$args')"
for {set i 0} {$i < $bwNumber} {incr i} {
if { $args == $bwArray($i) } {
set bwArray($i) ""
}
}
putquick "PRIVMSG "#test" :Mots interdits : \002\00312Mots interdits :\002\ suppression de\00304 '$args'"
bwWritefile
return 0
}
############################################################################
# WRITEFILE proc
############################################################################
proc bwWritefile {} {
global bwArray bwNumber bwFilename
set fd [open $bwFilename w]
for {set i 0} {$i < $bwNumber} {incr i} {
if { $bwArray($i) != "" } {
puts $fd "$bwArray($i)"
}
}
close $fd
return 0
}