#!/usr/bin/env rubyrequire "socket"include Socket::Constantsregistered = falsejoined = false# Load config fileFile.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 endendTCPSocket.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 endend