#!env ruby # encoding: utf-8 require 'rubygems' require 'eventmachine' require 'em-net-http' require 'em-irc' require 'logger' # Our config file is just a single Hash, nothing too fancy. require_relative 'config' require_relative 'repost' # Will have to change it to a normal EM loop if/when i'll want to make a usable # local console for the bot. Client = Repost.new do host Config[:server][:host] port Config[:server][:port] on :connect do puts "connected! changing nick to #{Config[:client][:nick]}" nick Config[:client][:nick] end on :nick do Config[:client][:channels].each do |channel| puts "joining #{channel}" join channel end end # The provided triggers/callbacks for actions are limited - there are no # quit/part callbacks, for example - and we'd have to catch raw messages # anyway. And since we're doing that, we can just go ahead and hook up to # raw callbacks exclusively. on :raw do |message| self.dispatch_raw_message message end end # Loading plugins here, because we need the Client object in scope to be able # to do anything. Client.load_plugins Client.run!