summaryrefslogtreecommitdiffstats
path: root/run.rb
blob: 0ef11205459a47ac3d878728520a66462374e513 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!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!