Skip to content

Instantly share code, notes, and snippets.

@kballenegger
Created May 26, 2012 07:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kballenegger/72dfecf39a96a6173d61 to your computer and use it in GitHub Desktop.
Save kballenegger/72dfecf39a96a6173d61 to your computer and use it in GitHub Desktop.
require 'json'
require 'zmq'
class ChartboostChatbot
def initialize
@members = []
@zmq = ZMQ::Context.new(1)
@pub = @zmq.socket(ZMQ::PUB)
@pub.bind('tcp://*:13001')
end
def did_startup
Thread.new do
ctx = ZMQ::Context.new(1)
pull = ctx.socket(ZMQ::UPSTREAM)
pull.bind('tcp://*:13000')
loop do
msg = pull.recv
puts "ZMQ: received -- #{payload}"
say(msg)
end
end
end
def setbot bot
@bot = bot
end
def joined(member)
@members << member
end
def left(member)
@members.delete member
end
def say(msg)
@bot.respond("PRIVMSG #chartboost :#{msg}")
end
def process(sender, message)
payload = {sender: sender, message: message, members: @members}.to_json
puts "ZMQ: sending -- #{payload}"
@pub.send(payload)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment