zhihubot 搭建

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 。。。自己下源码装吧

# wget http://nodejs.org/dist/v0.6.9/node-v0.6.9.tar.gz
# tar xf node-v0.6.9.tar.gz -C /usr/local/src && cd /usr/local/src/node-v0.6.9
# ./configure && make && make install
安装完node.js 后,安装 CoffeeScript ,npm install -g coffee-script

同样,现在也可以用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/

Comments

  1. 阿铭linux says:

    学习一下。共同进步!! 哈哈。

  2. d says:

    刚也装了个hubot, 有什么好玩的script, 共享下呗, po主.

  3. 那时候因为工作原因装来玩玩,后来没玩了……感觉只是炫,没有太大的实际应用

  4. noodles says:

    知道如何部署到heroku.com吗?
    我这里一直telent heroku.com 22 不通,郁闷死了

  5. heroku 的部署,是用它的 API 的……不是直接 ssh 上去的。而且你是尝试 ssh heroku.com ,基本……是不可能的啦。

  6. yuanbo says:

    BearyChat 的集成中已经支持了 Hubot,有兴趣的朋友可以试用一下,传送门 -> https://bearychat.com/integrations/hubot

Submit a Comment