All pastes #123878 Raw Edit

Stuff

public ruby v1 · immutable
·published 2006-08-09 17:30 UTC
rendered paste body
def read(args)	if args	puts args	if args.split[0] == 'PING'		$irc.print "PONG :" + args.split(':')[1]	end		if args.split[1].to_i != 0		bind_raw_num(args.split[1].to_i,args)	end		if args.split[1] == 'PRIVMSG'		nick = args.split('!')[0][1..-1]		address = args.split[0][1..-1]		dest = args.split[2]		msg = args[address.size+dest.size+12..-3]				if dest[0,1] == '#'			bind_pubmsg(nick,address,dest,msg)		else			bind_msg(nick,address,msg)		end	end		else endenddef bind_pubmsg(nick, address, chan, msg)	if msg == '!op' and address == 'Visualise!AIVA@208.53.178.253'		putserv "mode #{chan} +o #{nick}"	end		if msg.split[0] == 'hi'		putserv "PRIVMSG #{chan} :Hey #{nick}! :-)"	end		if msg == '!address'		putserv "PRIVMSG #{chan} :address: #{address}"	end		if msg.split[0] == '!jump'		putquick "privmsg #{chan} :jumping .."		putquick "QUIT :changing servers"	end		if msg == 'who are you?'		putserv "PRIVMSG #{chan} :I am #{$botnick}"	endenddef bind_msg(nick,address, msg)	putserv "privmsg #{nick} :#{msg}"enddef bind_raw_num(num,args)	if args.split[2] != $botnick		$botnick=args.split[2]	end		case num		when 376		bind_connect		when 433		if args.split[3] == $b_nick			nick=$b_altnick		else			nick=$b_nick[0,6]+srand.to_s[-3..-1]		end		putquick("NICK #{nick}\n")		endenddef bind_connect	putquick("MODE #{$b_nick} +i-ws\n")	putquick("notice visualise :Hello! :-)")	putquick("join #cream")enddef putserv(args)	$irc.print "#{args}\n"enddef putquick(args)	$irc.print "#{args}\n"end#### IRC Variables ##########$b_nick = "ruBOT"$b_altnick = "ruBOT2"$b_user = "admin"$b_email = "ruBOT2"$b_name = "ruBOT by Visualise"$b_def_port = "6667"$b_servers = %w(www.asd98a97qwjehqkjwhe.com:23823irc.mzima.net:6666irc.nac.netirc.easynews.com:6665irc.limelight.us:6669irc.choopa.netirc.blessed.net:6667)########################exception#handlerequire 'socket'def irc(i)begin	if i+1 <= $b_servers.size	i+=1	else	i=0	end		if $b_servers[i].include? ':'		$irc = TCPSocket.new($b_servers[i].split(':')[0],$b_servers[i].split(':')[1])		else		$irc = TCPSocket.new($b_servers[i],$b_def_port)		end		$irc.print "NICK #{$b_nick}\nUSER #{$b_user} \"#{$b_email}\" \"#{$b_server}\" :#{$b_name}\n"			while $irc		g=$irc.gets		if (g)			read(g)		else			irc(i)			break		end	end	rescue		irc(i)	end	end$botnick=#{$b_nick}Thread.new { loop {if $irc & $botnick != $b_nick	$irc.print "ison #{$b_nick} #{$b_altnick}"endsleep 5}}irc(-1)