All pastes #996420 Raw Edit

Mine

public text v1 · immutable
#996420 ·published 2008-04-24 22:43 UTC
rendered paste body
#!/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