UNPKG

brobbot

Version:

A simple helpful robot for your Company

51 lines (37 loc) 1.29 kB
Readline = require 'readline' Robot = require '../robot' Adapter = require '../adapter' {TextMessage} = require '../message' class Shell extends Adapter constructor: (@robot, @brain) -> super(@robot, @brain) @readyDefer.resolve() send: (envelope, strings...) -> unless process.platform is 'win32' console.log "\x1b[01;32m#{str}\x1b[0m" for str in strings else console.log "#{str}" for str in strings @repl.prompt() emote: (envelope, strings...) -> @send envelope, "* #{str}" for str in strings reply: (envelope, strings...) -> strings = strings.map (s) -> "#{envelope.user.name}: #{s}" @send envelope, strings... run: -> stdin = process.openStdin() stdout = process.stdout @repl = Readline.createInterface stdin, stdout, null @repl.on 'close', => stdin.destroy() @robot.shutdown() process.exit 0 @repl.on 'line', (buffer) => @repl.close() if buffer.toLowerCase() is 'exit' @repl.prompt() @robot.brain.userForId('1', name: 'Shell', room: 'Shell').then (user) => @receive new TextMessage user, buffer, 'messageId' @connectedDefer.resolve() @repl.setPrompt "#{@robot.name}> " @repl.prompt() exports.use = (robot) -> new Shell robot