repost/run.rb

47 lines
1.3 KiB
Ruby
Raw Normal View History

#!env ruby
require 'rubygems'
require 'eventmachine'
require 'em-irc'
# Our config file is just a single Hash, nothing too fancy.
2013-05-29 18:55:52 +00:00
require_relative 'config'
require_relative 'repost'
2013-06-04 19:30:57 +00:00
# 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.
2013-05-29 18:55:52 +00:00
Config[:plugins].each do |plugin|
puts "Loading plugin #{plugin}"
load File.dirname($0) + '/plugins/' + plugin + '.rb'
2013-05-29 18:55:52 +00:00
end if not Config[:plugins].nil?
Client.run!