bouzuya.hatenablog.com

ぼうずやのにっき

hibot と自動 fav スクリプトをつくった

ひとり読書会向けの HUBOT である hibot をつくった。

まず自動 fav スクリプトを加えた。

ぼくは自動であっても fav されるのが好きで、#hitoridokusho タグを書けば fav されるとうれしい。まるで #hitoridokusho にごほうびがついている気分になる。そこで自動 fav スクリプトを書いた。

対話的なコマンドを必要としないので Hubot 向けのスクリプトではないのだけど、さらっと書いて追加した。Twitter から #hitoridokusho というハッシュタグを定期的に検索して追加されたら自動で fav る。動きは以前書いた hubot-egosa をベースにしている。

今回ハマったのは Twitter API v1.1 の favorites 関連の動きがてんでダメだったことだ。twittertwitter-js-clientnode-twitter も試したがどれもダメだった。諦めて必要な部分だけを自作した。他人のライブラリでハマった時間よりも、自分でライブラリを書いた時間のほうが圧倒的に短いという結果。

またリポジトリのつくりかたを変えた。

今回のリポジトリhubot-scripts のような Hubot スクリプトだけの形ではなく、hubot に依存するパッケージの形にしている。仮に hubot-scripts をつくったとして、そこから何を使うのかを hubot-scripts.json に書いたり、依存ライブラリを package.json に書いたりしたリポジトリを別に設置するというのはまどろっこしいだけだ。どうせ全部の Hubot スクリプトを使うし、本当にスクリプトを選んで使うのなら、そもそも hubot-scripts のように束ねるべきではない。それぞれ別のパッケージとして GitHub なり npm なりで公開すれば良い。

今回の hibot のように package.jsonhubotスクリプトの依存ライブラリなどを含んだ、独自アプリケーションをパッケージとしたほうが簡単にデプロイできる。

$ git clone git@github.com:hitoridokusho/hibot.git
$ cd hibot
$ heroku create
$ heroku config:set HEROKU_URL='...' ...
$ git push heroku master

公開しても大丈夫な設定は commit されているので、本当に手軽だ。

最後にひとり読書会は新しいメンバーを募集している。一緒にプログラミング関連書籍を読んで、話ができればきっと楽しいとぼくは信じている。堅い会ではないので(下手すると食べながらになりかねないくらいに)、気軽に参加してほしい。