node-twbot 0.0.1 / Hackathon 用の資料
WebSocket やらない、という選択肢はなさそうなので、家で使っているtwitterボットをパッケージ化しました。
EventEmitter のサブクラスとして再定義しなおして、いろいろできるように。
$ npm install twbot
で入ります。
WebSocket のサンプル作るときに使おうと思います。
サンプル - 英語のリスニング
ちょうどやっている最中に Twitter / cakephper: 英語のTweetを定期的に取得して、Sayに突っ込め ... というのを聴いて、実装してみた。何人か海外の人のtweetみているんだけれど、聴けばいいんじゃね?ってことで。
https://github.com/yssk22/node-twbot/blob/master/lib/plugins/say.js
受け取ったツイートを何も考えずにsayコマンドの入力に与えているだけです。
他にすべてのイベントを CouchDB に放り込むプラグインとか URL があったらそれをダウンロードしてCouchDBに放り込むプラグインとか、とにかくCouchDBに放り込むプラグインをいろいろ作っていこうと思います。
vows でテスト.
テストの方も、3割ぐらいしかかけてませんが、 vows という BDDのテストフレームワークで書いてみました。
https://github.com/yssk22/node-twbot/blob/master/spec/spec_twitter.js
書きやすいっちゃ書きやすいけど、a -> b -> c というイベントの流れでどこまでがINでどこからがOUTか、というのがが仕様として定義しにくい感じになるので、考え物です。
設計が悪いのか、それともこういうもんなのか。
全然関係ないけど npm のサイトはCouchDBで動いています.
npm publish が失敗するのでいろいろデバッグしていたら、npm の登録サイト registry.npmjs.org が CouchDB で動いていることを見つけました。
ということでどれぐらい開発者いるんだろう?と思って /_users/ をたたくわけです。
http://registry.npmjs.org/_users/
350人ぐらいいました。
ちなみに /_users/_all_docs?include_docs=true するとメールアドレス大公開です。。。
いやまぁ、こういうのに登録するのは連絡先だからいいんでしょうが。