-
Notifications
You must be signed in to change notification settings - Fork 5
/
PADbot.rb
46 lines (42 loc) · 1.1 KB
/
PADbot.rb
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
require 'cinch'
require 'pry'
#require 'debugger'
require 'data_mapper'
require 'json'
require 'yaml'
require './dispatcher.rb'
require './misc.rb'
require './plugins/base.rb'
Dir.glob("plugins/*.rb").each {|x| require_relative x}
Dir.glob("plugins/*/*.rb").each {|x| require_relative x}
Dir.glob("models/*.rb").each {|x| require_relative x}
def initialize_database
config = YAML.load(File.read("database_config.yaml"))
DataMapper.setup(:default, config)
DataMapper.finalize
end
def initialize_cinch_bots(environment)
config = YAML.load(File.read("irc_config.yaml"))
selected_config = config[environment]
selected_config.map do |server_config|
Cinch::Bot.new do
configure do |c|
c.server = server_config["server"]
c.nick = server_config["nick"]
c.channels = server_config["channels"]
c.plugins.plugins = [Dispatcher, MiscPlugin]
end
end
end
end
environment = ARGV.first || 'development'
initialize_database
bots = initialize_cinch_bots(environment)
workers = bots.map do |bot|
Thread.new do
bot.start
end
end
workers.each do |thread|
thread.join
end