#!/usr/bin/env ruby
require "socket"
include Socket::Constants
registered = false
joined = false
# Load config file
File.open('kaiser.cfg') do |file|
file.each do |line|
command, value = line.chomp.split(/\s*=\s*/)
case command
when "server"
@server = value
when "port"
@port = value
when "nick"
@nick = value
when "channels"
@channels = value.split(/,/)
end
end
end
TCPSocket.new(@server, @port) do |socket|
while result = socket.gets
puts result
# If we are not registered, register
if(!registered && result =~ /NOTICE AUTH/)
registered = true
socket.puts('user blah blah blah blah')
socket.puts("nick #@nick")
end
# respond to a ping.
if(result =~ /PING :([\w\d.]*)/)
socket.puts("PONG #$1")
puts "PONG #$1"
end
# When we are connected, join channels
if(!joined && result =~ /MODE/)
@channels.each do |chan|
socket.puts("JOIN #{chan}")
end
end
end
end