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 するとメールアドレス大公開です。。。

いやまぁ、こういうのに登録するのは連絡先だからいいんでしょうが。