1# This script was originally written by Mike McDonald of 2# FoxChat.Net for the X-Chat Client to be used by Opers 3# to Kline/kill spam bots that message you or say in 4# open channel - 5# "Come watch me on my webcam and chat /w me :-) http://some.domain.com/me.mpg". 6# 7# This is my first script so I'm sure there is a more 8# efficient way of doing this. 9# 10# --------[ Note ]------------------------------------------------------------- 11# I symlink this to my ~/.irssi/scripts/autorun 12# Just know that it will not work if you are not op'd. 13# 14#------------------------------------------------------------------------------ 15 16use Irssi; 17use strict; 18use vars qw($VERSION %IRSSI $SCRIPT_NAME); 19 20%IRSSI = ( 21 authors => 'Daemon @ ircd.foxchat.net', 22 name => 'Spam Bot Killer', 23 description => 'Oper script to kill Spam Bots.', 24 license => 'Public Domain' 25); 26($VERSION) = '$Revision: 1.2 $' =~ / (\d+\.\d+) /; 27 28$SCRIPT_NAME = 'Spam Bot Killer'; 29 30# ======[ Credits ]============================================================ 31# 32# Thanks to: 33# 34# Mike - For letting me use parts of his bot_killer.pl which was written for 35# the X-Chat client. 36# 37# Garion - Let me use parts of his "ho_easykline" to make this work with 38# Irssi and gave me - 39# return unless $server->{server_operator}; 40# so the script won't try to run if you aren't oper'd. 41# 42# mannix and lestefer of ircd.foxchat.net for letting me kline them :) 43# 44#------------------------------------------------------------------------------ 45 sub event_privmsg 46 { 47 # $data = "nick/#channel :text" 48 my ($server, $data, $nick, $host, $user, $address) = @_; 49 50 51 # Set Temp K-Line time here in minutes. 52 my $klinetime = 1440; 53 my $msg = "Spamming is lame ... go spam somewhere else."; 54 my ($target, $text) = split(/ :/, $data, 2); 55 56 if ($text =~ /chat \/w me/ || / \/me.mpg/) 57 { 58# --------[ Notice ]----------------------------------------------------------- 59 # Uncomment this line if you don't want to use temp klines 60 # and comment the following line. 61 62 # $server->command("quote kline $host :$msg"); 63 64 $server->command("quote kline $klinetime $host :$msg"); 65 66#------------------------------------------------------------------------------ 67 68 Irssi::print("K-lined $nick :$msg"); 69 70 # Do a Kill in case they are on another server 71 # and the local Kline doesn't get them. 72 73 $server->command("quote kill $nick :$msg"); 74 } 75 } 76 77Irssi::signal_add("event privmsg", "event_privmsg"); 78 79Irssi::print("\00311:: Spam Bot Killer loaded ::\003\n"); 80Irssi::print("\00311::You can only use this script if you are Oper. ::\003\n"); 81