#!/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