Sojiro’s Blog

This is nothing much.

HUBOTを使ったirc-bot作成メモ

①HUBOTを動かすために必要な諸々のインストール

準備として以下をインストールする

  • node.js(サーバー)
  • npm(パッケージ管理コマンド)
  • Redis(KVS)

上記をインストールするためにHomebrewのインストールから始める

1
$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"

これでHomebrewが入るはず

次にHomebrewを使ってそれぞれインストールする

まずnode.jsとnpm

1
$ brew install node

このコマンド一発でnode.jsとnpmが入るはず

1
2
3
4
$ node -v
v0.10.26
$ npm -v
1.4.6

Redisもインストール

1
$ brew install redis

Redisを起動しておく

1
$ redis-server &

②HUBOTをインストールする

GitHubからリポジトリをクローンしてインストール

1
2
3
4
$ cd git/
$ git clone git://github.com/github/hubot.git
$ cd hubot/
$ npm install -g hubot coffee-script

動くか確認

1
2
$ hubot
Hubot>

OK

③HUBOTをircと連携させる

自分用のHUBOTを作る

1
$ hubot --create myhubot

myhubotの部分は自由に変更可。この名前のディレクトリが作られる

自分用HUBOTにhubot-ircをインストール

1
2
$ cd myhubot/
$ npm install hubot-irc --save && npm install

irc連携のためのスクリプトを書く

1
$ vim runhubot

中身はこんな感じ

1
2
3
4
5
6
7
8
9
$ cat runhubot
#!/bin/bash

export HUBOT_IRC_NICK="bot_kun"
export HUBOT_IRC_ROOMS="#target_channel"
export HUBOT_IRC_SERVER="irc.hogehoge.local"
#export HUBOT_IRC_PASSWORD="hoge"

bin/hubot -a irc --name myhubot

スクリプトの実行権限追加

1
$ chmod u+x runhubot

起動スクリプト実行!

1
$ ./runhubot &

irc上でbotがいるか確認する

bot_kunがいたのでOK

④botにさせたいことを設定する

HUBOTにさせたいことはscriptsディレクトリ以下にCoffeeScriptもしくはJavaScriptで記述する

最初からいくつかのスクリプトが存在するので、それを参考に書けばOK

1
2
3
4
5
6
$ vim scripts/tell_fuga.coffee
$ cat scripts/tell_fuga.coffee
module.exports = (robot) ->

  robot.hear /hoge/, (msg) ->
      msg.send "fuga"

スクリプトを書いたら、再起動すると読み込んでくれる

1
$ ./runhubot &

⑤cronが使えるようにする

node-cronをインストール

1
$ npm install cron

cronを使ったスクリプトを書く

1
$ vim scripts/mention_hoge.coffee

今回は2時間おきに発言するスクリプトを書いてみた

1
2
3
4
5
6
7
8
9
10
$ cat scripts/mention_hoge.coffee
cron = require('cron').CronJob
module.exports = (robot) ->
  robot.enter ->
  new cron
    cronTime: "0 0 */2 * * *"
    start: true
    timeZone: "Asia/Tokyo"
    onTick: ->
      robot.send {room: "#target_channel"}, "hoge"

参考資料

Comments