class Ruboty::Adapters::LetsChat
Constants
- LCB_ROOMS
- LCB_TOKEN
- LCB_URL
Public Instance Methods
run()
click to toggle source
# File lib/ruboty/adapters/lets_chat.rb, line 16 def run _robot = robot _socket = socket # patch in to catch socket.io connect event websocket = _socket.instance_variable_get('@websocket') websocket.on :message do |msg| _socket.__emit 'socket.io connect' if (code = msg.data[/^(\d+)/, 1]) && (code.to_i == 40) end _socket.on 'socket.io connect' do _socket.emit 'connected' LCB_ROOMS.each do |room| _socket.emit 'rooms:join', room end end _socket.on 'messages:new' do |data| _robot.receive( body: data['text'], from: data['owner']['id'], from_name: data['owner']['username'], room_id: data['room']['id'], room_name: data['room']['name'], ) end _socket.on 'error' do |data| # TODO: handle error end loop { sleep 60 } rescue Interrupt exit end
say(message)
click to toggle source
# File lib/ruboty/adapters/lets_chat.rb, line 52 def say(message) socket.emit('messages:create', room: message[:original][:room_id], text: message[:body]) end
socket()
click to toggle source
# File lib/ruboty/adapters/lets_chat.rb, line 56 def socket @socket ||= SocketIO::Client::Simple.connect(LCB_URL, token: LCB_TOKEN) end