概要
Mac上にhubotをインストールしてhubotと1人で会話してみました
ついでに独自のスクリプトも作成してみました
環境準備
- Mac OS X 10.8.5
- Homebrew 0.9.5
- node 0.10.32
- redis 2.8.17
hubotインストール
hubotはnodeのパッケージ管理コマンドnpm
を使ってインストールします
そして、nodeとnpmのインストールはHomebrewから行うので、まだHomebrewのインストールを行っていない方はこちらから
その前にredisインストール
hubotの動作ににredisが必要なのでインストールします
redisもHomebrewから
brew install redis
起動はredis-server
でOK
node&npmインストール
brew install node
その後hubotインストール
npmコマンドでインストールします
npm install -g hubot coffee-script
hubotのスクリプトはcoffee-scriptで記述するためcoffee-scriptもインストールします
インストールは「-g」を付けてグローバルインストールにします
試す
インストールは以上で完了です
まずredis-severを起動します
redis-server
次にhubotを起動します
適当なworkingディレクトリに移動して試します
cd work/hubot
hubot --create kaka_bot
cd kaka_bot
./bin/hubot
hubot
という実行用のシェルを直接叩いて実行するとHubot>
というインタラクティブモードになります
Hubot> hubot ping
Hubot> PONG
Hubot> hubo help
...ずらっとヘルプの一覧が表示されます...
Hubot> ping
実行する際はhubot
というプレフィックス的なものをつける必要があります
helpを表示すれば実行できるコマンドがいろいろと表示されるので試してみてください
また余談ですが、この状態でredis-cliを使ってredisの中を覗いて見るとhubot:storage
というkeyができておりJsonオブジェクトが格納されているのがわかります
カスタマイズしてみる
さて、普通にMac上でhubotを動作させることに成功したので次にカスタマイズしてみたいと思います
カスタマイズは独自のスクリプトを作成することで実現します
スクリプトを作成するには先ほど移動したworkingディレクトリに移動してscrpit
配下に独自のスクリプトを配置するだけでOKです
cd work/hubot/kaka_bot/scripts
touch jibanyan.coffee
vim jibanyan.coffee
以下を貼り付けてください
# Description:
# I love the YokaiWatch.
#
# Commands:
# hubot jibanyan - Display the Jibanyan image that appear in the YokaiWatch.
module.exports = (robot) ->
robot.respond /(jibanyan|jiba)$/i, (msg) ->
imageMe msg, 'ジバニャン', (url) ->
msg.send url
imageMe = (msg, query, animated, faces, cb) ->
cb = animated if typeof animated == 'function'
cb = faces if typeof faces == 'function'
q = v: '1.0', rsz: '8', q: query, safe: 'active'
q.imgtype = 'animated' if typeof animated is 'boolean' and animated is true
q.imgtype = 'face' if typeof faces is 'boolean' and faces is true
msg.http('http://ajax.googleapis.com/ajax/services/search/images')
.query(q)
.get() (err, res, body) ->
images = JSON.parse(body)
images = images.responseData?.results
if images?.length > 0
image = msg.random images
cb ensureImageExtension image.unescapedUrl
ensureImageExtension = (url) ->
ext = url.split('.').pop()
if /(png|jpe?g|gif)/i.test(ext)
url
else
"#{url}#.png"
スクリプトを配置して再度./bin/hubot
で起動してhubot jibanyan
とコマンドを実行するとURLが返却されると思います
Hubot> hubot jibanyan
Hubot> http://lohas.nicoseiga.jp/thumb/3949352i?#.png
と、こんな感じでcoffeeスクリプトを書いて配置して再起動するだけで簡単にカスタマイズすることができます
あとはheroku pushとかしてslackなどのチャットサービスと連携していればGUIでも操作できると思います(今回は割愛)
0 件のコメント:
コメントを投稿