First semi-reasonable version of the code.
This commit is contained in:
commit
cf64f64b89
3 changed files with 55 additions and 0 deletions
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
config.rb
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
17
repost.rb
Normal file
17
repost.rb
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
class Repost < EventMachine::IRC::Client
|
||||||
|
|
||||||
|
attr_accessor :triggers
|
||||||
|
|
||||||
|
def dispatch_raw_message(message = {})
|
||||||
|
self.triggers = [] if self.triggers.nil?
|
||||||
|
self.triggers.each do |trigger|
|
||||||
|
trigger[:code].call(message) if message[:command] == trigger[:command]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def register_trigger(command, &code)
|
||||||
|
self.triggers = [] if self.triggers.nil?
|
||||||
|
self.triggers << {:command => command, :code => code}
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
34
run.rb
Executable file
34
run.rb
Executable file
|
@ -0,0 +1,34 @@
|
||||||
|
#!env ruby
|
||||||
|
|
||||||
|
require 'rubygems'
|
||||||
|
require 'eventmachine'
|
||||||
|
require 'em-irc'
|
||||||
|
require './config'
|
||||||
|
require './repost'
|
||||||
|
|
||||||
|
repost = 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
|
||||||
|
|
||||||
|
on :raw do |message|
|
||||||
|
self.dispatch_raw_message message
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
#repost.register_trigger("PRIVMSG") { |msg| p msg }
|
||||||
|
|
||||||
|
repost.run!
|
Loading…
Reference in a new issue