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) "#nis"
# Which channel shall we posts alerts in?
set spamdet(alert_chan) "#imekanala"
# How many minutes shall we idle in channel?
set spamdet(idle_time) "30"
# How many seconds shall we stay gone?
set spamdet(gone_time) "60"
# Exempt by nick (seperate by ,)
set spamdet(nexempt) "ChanServ, MarlbMan"
# Exempt by host (seperate by ,)
set spamdet(hexempt) "cwbot@64.124.16.33"
# 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) :4ALERT! Possible Spam Detected From 3$nick"
putserv "PRIVMSG $spamdet(alert_chan) :Delivery Form: MESG"
putserv "PRIVMSG $spamdet(alert_chan) :<$nick!$uhost> $args"
}
}
}
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) :4ALERT! Possible Spam Detected From 3$nick"
putserv "PRIVMSG $spamdet(alert_chan) :Delivery Form: NOTC"
putserv "PRIVMSG $spamdet(alert_chan) :<$nick!$uhost> $args"
}
}
}
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) :4ALERT! Possible Spam Detected From 3$nick"
putserv "PRIVMSG $spamdet(alert_chan) :Delivery Form: CTCP"
putserv "PRIVMSG $spamdet(alert_chan) :<$nick!$uhost> $key $args"
}
}
}
}
bind ctcp -|- * EchoCTCP
bind notc -|- * EchoNOTC
bind msgm -|- * EchoMESG
putlog "Spam Detective v1.0 by MarlbMan loaded"