zhihubot 是一个基于GitHub 开源的Hubot [1],长期寄居于Campfire 某个room 的机器人。那说回来,Hubot 又是啥呢?Hubot 是GitHub 内部的机器人,它能做很多事情,例如自动化部署,时不时贴一下有趣的图片,为他们播放音乐,翻译,你能想到的,都可以,只需要在Campfire 里的一个有Hubot 的chat room 里,和Hubot 说一句话就可以了,剩下就交给Hubot 吧。原生支持shell 和campfire ,当然,还有更多的接口,如IRC, gtalk。它之前的内部版本是用什么写的就不知道了,现在开源的版本是用node.js 的CoffeeScript 写的,想到自己的Hubot 需要什么功能,自行动手写吧。
还是说如何搭建吧。Hubot 有两个项目:主项目 https://github.com/github/hubot 和收集回来的脚本 https://github.com/github/hubot-scripts,下载源码包吧,以后它更新了你又跟进不了,git clone 一个readonly 的吧,差不多效果。所以,fork 吧,以后说不定要加入自己的很多scripts呢。fork 出来以后,在自己本地clone 一份吧,然后就可以开始了。
我一般在自己的Mac 下用shell 测试,在线上的Linux 连接Campfire 。因为包管理工具不同而略有不同而已。
Mac 下,我用的是homebrew
brew install node.js ,安装node.js
curl http://npmjs.org/install.sh | sh ,安装npm — node package manager
进入hubot 目录,npm install ,然后所有的依赖都帮你安装完成了
进行测试前,要export 一个系统变量,export PATH=”node_modules/.bin:$PATH”
./bin/hubot ,测试,尽情玩吧
Hubot> ,见到这个命令行提示符,我最初是完成不知道如何操作的。。。万事开头难啊,哈哈
输入 hubot pug me 测试下
Linux 下,这次我用的是Debian
# apt-get install build-essential libssl-dev git-core redis-server libexpat1-dev ,安装相关的包
debian 既然还没有node.js 。。。自己下源码装吧
同样,现在也可以用shell 测试了。
现在来尝试一下连接Campfire 。首先去新建一个账号给hubot 使用。然后去邀请hubot 加入campfire 。
在hubot 目录下新建一个文件run ,内容为:
=========================================
#!/bin/bash
##
## Wrapper for Hubot startup
##
HUBOT=”/path/to/your/hubot/”
NAME=”zhihubot”
ADAPTER=”campfire”
HUBOT_CAMPFIRE_TOKEN=”your bot’s api”
HUBOT_CAMPFIRE_ACCOUNT=”subdomain”
HUBOT_CAMPFIRE_ROOMS=”room number 1, room number 2″
OPTS=”–name ${NAME} –adapter ${ADAPTER}”
export HUBOT_CAMPFIRE_TOKEN
export HUBOT_CAMPFIRE_ACCOUNT
export HUBOT_CAMPFIRE_ROOMS
until ${HUBOT} ${OPTS}; do
echo “Hubot crashed with exit code $?. Restarting.” >&2
sleep 5
done
================================================
NAME ,hubot 的名字,每次发命令基本都要带上,robot.hear 的不用
HUBOT_CAMPFIRE_TOKEN ,你申请那个hubot 用的账号的api token,在账号的info 里有
HUBOT_CAMPFIRE_ACCOUNT ,这里的account 有点误导,其实是$subdomain.campfirenow.com 的subdomain ,而不是hubot 的账号
HUBOT_CAMPFIRE_ROOMS ,聊天室的id ,用逗号分隔
填上以上,再赋个权,chmod +x run ,在screen or tmux 下,./run 即可。
OK. Let’s rock !
如果成功了,hubot 会作为你刚才为它申请那个账号的身份,进入聊天室,你会见到它在线的
在聊天室中输入 zhihubot pug me (格式一般为$hubotname $command ,可以 zhihubot help 查看帮助)看看效果??(爱死那狗狗了!)
hubot-scripts 里还有很多有趣的scripts ,可以自行玩玩,但由于写的人很多,很不完善,未必每个scripts 都能顺利跑起来噢
由于其默认读取的是两个目录:hubot/scripts & hubot/src/scripts ,后者是built-in 脚本,那么我就把自己觉得好玩的或者自己写的脚本放hubot/scripts 里。
========================================
Campfire 本身是可以免费的,但免费版实在太弱了,只能同时容纳4 个人聊天,想让你的Hubot 活起来,果断购买吧!!一个月10+ 刀的消费对于一个公司甚至个人来说都不算什么,何况它能极大提高团队的活力、幸福感、积极性、xxxx
Hubot ,很明显来自于GitHub 的Hub ,加上robot 的bot,而zhihubot ,很明显又是利用了hubot 的hu ,直接将zhihu 串上去,很是山寨。所以呢,zhihubot 是有它自己的名字的,它叫Marvin ,它长这个样子的
Reference:
[1] http://hubot.github.com/
