No temas hubot está aquí.
Hubot es un bot para diferentes sistemas de mensajería que puede hacer tú trabajo más fácil o tu conversación más divertida.
- Y hoy hablaremos de ambas cosas.
Hoy en día Hubot se puede conetar a:
No te preocupes, Hubot puede correr en modo local desde tu shell.
$ cd hubot
$ . bin/hubot
Hubot> hubot echo "I love user"
Hubot> "I love user"
node.js
npm
build-essentials
.coreutils
.Asumiendo que tienes todo lo necesario:
$ git clone git://github.com/github/hubot.git && cd hubot
$ npm install
Hacer deployment es igual de sencillo que instalar, especialmente en heroku
- Más información aquí.
Hubot sigue el principio de UNIX
- pequeños programas que hacen una sola cosaUn script escrito en javascript o coffeescript, y está es su forma más simple.
module.exports = (robot)->
robot.respond /tijuana\.js/i, (message)->
message.send "It's the happiest place on earth!"
$ cd hubot
$ . bin/hubot
Hubot> hubot tijuana.js
Hubot> It's the happiest place on earth!
module.exports = (robot)->
robot.respond /(?:translate) ( me )? (.*)/i, (message)->
message.http('http://translate.google.com/translate_a/t')
.query(
sl: 'auto',
target: 'en'
)
.header('User-Agent', 'Hubot MOFO!')
.get() (error, response, body)->
message.send body
- El objeto message viene cargado con un cliente HTTP
Hubot es bueno respondiendo lo que le pedimos, pero también puede actuar sin petición alguna:
module.exports = (robot)->
robot.hear /creo que (.+)$/i, (message)->
message.send "YEAAAAHHHHH!"
$ cd hubot
$ . bin/hubot
Hubot> creo que este arroz ya se cocio
Hubot> YEAAAAHHHHH!
Quiero los scripts más nuevos.
"dependencies": {
"hubot-scripts": "git://github.com/github/hubot-scripts.git"
}
- package.json de hubot
Lamentablemente las pruebas de hubot-scripts están rotas en este momento.
Por que sí solo hablaramos esto sería muy aburrido. La meta, hacer que hubot nos proporcione información sobre los últimos terremotos registrados, usando solo lo que hemos visto.
Este script no debe tener ninguna dependencía externa y como único recurso solo deberá usar http://earthquake.usgs.gov/
hubot quakes (intensity|all|significant) (period) [limit]
No hemos cubierto todo lo que hubot puede hacer
robot.brain
- hubot puede usar redis como key-value storage y guardar información por nosotros
Está presentación fue hecha con: reveal.js
Puede ser obtenida aquí