Code: Select all
##### 23.08.03
# Spam Detective v1.0 by MarlbMan
# irc.newnet.net #complete-chat
#####
#####
#####
# Detects on join/on part spam in one channel, and alerts in another channel.
#####
#####
# Credits: I got the idea from Torr/MC_8's Spam Check. I wanted a script that would
# join/part a channel at specified intervals, but instead of kicking/banning
# I wanted it to alert the ops in another channel. This is my 5th script, but
# the first I've made public. Critism is welcome. I will be releasing a few
# more very soon.
#####
#####
# Settings:
#####
# Which channel shall we monitor for spam?
set spamdet(monitor_chan) "#"
# Which channel shall we posts alerts in?
set spamdet(alert_chan) "#"
# How many minutes shall we idle in channel?
set spamdet(idle_time) "15"
# How many seconds shall we stay gone?
set spamdet(gone_time) "30"
# Exempt by nick (seperate by ,)
set spamdet(nexempt) "ChanServ"
# Exempt by host (seperate by ,)
set spamdet(hexempt) ""
# CTCP Keys to ignore (should always include action to prevent actions being reported)
set spamdet(kexempt) "ACTION"
#####
# Code (If you edit below this line you will hemmorage uncontrollably from your rectum)
#####
set spamdet(ver) "1.0"
if {![string match *spamdetect* [timers]]} {timer $spamdet(idle_time) spamdetect}
proc spamdetect {} {
global spamdet botnick
channel set $spamdet(monitor_chan) +inactive
utimer $spamdet(gone_time) "channel set $spamdet(monitor_chan) -inactive"
if {![string match *spamdetect* [timers]]} {timer $spamdet(idle_time) spamdetect}
}
proc EchoMESG { nick uhost handle args } {
global spamdet
if {![string match *$nick* $spamdet(nexempt)]} {
if {![string match *$uhost* $spamdet(hexempt)]} {
putserv "PRIVMSG $spamdet(alert_chan) :------------------------------------------------------------------------------"
putserv "PRIVMSG $spamdet(alert_chan) :Nickname:\002 $nick \002($uhost): Channels: Type: \002MSG\002"
putserv "PRIVMSG $spamdet(alert_chan) :Text:\002 $args \002"
putserv "PRIVMSG $spamdet(alert_chan) :$nick spammed times"
putserv "PRIVMSG $spamdet(alert_chan) :------------------------------------------------------------------------------"
}
}
}
proc EchoNOTC { nick uhost handle args target } {
global spamdet
if {![string match *$nick* $spamdet(nexempt)]} {
if {![string match *$uhost* $spamdet(hexempt)]} {
putserv "PRIVMSG $spamdet(alert_chan) :------------------------------------------------------------------------------"
putserv "PRIVMSG $spamdet(alert_chan) :Nickname:\002 $nick \002($uhost): Channels: Type: \002NOTICE\002"
putserv "PRIVMSG $spamdet(alert_chan) :Text:\002 $args \002"
putserv "PRIVMSG $spamdet(alert_chan) :$nick spammed times"
putserv "PRIVMSG $spamdet(alert_chan) :------------------------------------------------------------------------------"
}
}
}
proc EchoCTCP { nick uhost handle target key args } {
global spamdet
if {![string match *$nick* $spamdet(nexempt)]} {
if {![string match *$uhost* $spamdet(hexempt)]} {
if {![string match *$key* $spamdet(kexempt)]} {
putserv "PRIVMSG $spamdet(alert_chan) :------------------------------------------------------------------------------"
putserv "PRIVMSG $spamdet(alert_chan) :Nickname:\002 $nick \002($uhost): Channels: Type: \002CTCP\002"
putserv "PRIVMSG $spamdet(alert_chan) :Text:\002 $args \002"
putserv "PRIVMSG $spamdet(alert_chan) :$nick spammed times"
putserv "PRIVMSG $spamdet(alert_chan) :------------------------------------------------------------------------------"
}
}
}
}
bind ctcp -|- *http* EchoCTCP
bind notc -|- *http* EchoNOTC
bind msgm -|- *http* EchoMESG
bind ctcp -|- *www.* EchoCTCP
bind notc -|- *www.* EchoNOTC
bind msgm -|- *www.* EchoMESG
putlog "Spam Detective v1.0 by MarlbMan loaded"
And how can i add channels that nick is on here: Nickname:\002 $nick \002($uhost): Channels: Type: \002CTCP\002"
Thanks