Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/ruby
- require 'socket'
- $server = 'irc.tddirc.net'
- $port = 6667
- $nick = $user = $real = 'scamper'
- $channels = ['#bots']
- $sock = TCPSocket.open($server, $port)
- def send(msg)
- begin
- puts "send> #{msg}"
- $sock.send "#{msg}\n", 0
- rescue
- puts "## Message failed to send ##"
- end
- end
- def server_input(s)
- puts s
- case s.strip
- when /^ping /i
- puts "recv> PING {$'}"
- send "PONG #{$'}"
- end
- end
- def command(s)
- s.chomp!
- case s.strip
- when /^msg /i
- privmsg $'
- when /^join /i
- unless $channels.include? $'
- send "JOIN #{$'}"
- $channels.push $'
- end
- when /^part /i
- if $channels.include? $'
- send "PART #{$'}"
- $channels.delete $'
- end
- end
- end
- send "USER #{$user} #{$server} #{$server} :#{$real}"
- send "NICK #{$nick}"
- $channels.each { |chan| send "JOIN #{chan}" }
- loop do
- input = select([$sock, $stdin], nil, nil, 60)
- next unless input
- puts "Past next statement"
- input[0].each do |inp|
- if inp == $stdin
- return if $stdin.eof?
- inp = $stdin.gets
- command inp
- elsif inp == $sock
- return if $sock.eof?
- inp = $sock.gets
- server_input inp
- puts inp
- end
- end
- puts "Reached end of the loop."
- end
Add Comment
Please, Sign In to add comment