What you requested in itself is quite easy. The hard part would be getting the bot to destinguish what was spam and what was legitimate text. the only real way to do this is have a set of specific badwords like "http" or "cd key" and if someone who is not a registed user on the bot says one of the 'badwords' then they get reported. the easiest thing to do is in your IRC client just add a list of badwords to hilite
The lifecycle of a noob is complex. Fledgling noobs gestate inside biometric pods. Once a budding noob has matured thru gestation they climb out of their pod, sit down at a PC, ask a bunch of questions that are clearly in the FAQ, The Noob is born
Yes, I've seen scripts with a list (that can be addded to) with a list of badwords, e.g. *selling cdkey* or *trading cdkey* -
The only reason I'm not using my IRC client to do this is because I don't want to have to be in all of the spam channels at once, I'd rather the bot sit in them and report to it's main channel.
I did find a script called Spam Detective by MarlbMan, although it looks pretty old.
##### 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) "#complete-warez"
# Which channel shall we posts alerts in?
set spamdet(alert_chan) "#complete-servers"
# How many minutes shall we idle in channel?
set spamdet(idle_time) "9"
# 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}
}
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"
i think your best bet is to use a decent spam detect script like spamcop by demond. check the archives.
The lifecycle of a noob is complex. Fledgling noobs gestate inside biometric pods. Once a budding noob has matured thru gestation they climb out of their pod, sit down at a PC, ask a bunch of questions that are clearly in the FAQ, The Noob is born
The lifecycle of a noob is complex. Fledgling noobs gestate inside biometric pods. Once a budding noob has matured thru gestation they climb out of their pod, sit down at a PC, ask a bunch of questions that are clearly in the FAQ, The Noob is born