ircボットからtwitterにメッセージを送信する.

Google Code Archive - Long-term storage for Google Code Project Hosting.

ircボットを書くためのframeworkらしいです.最近,「ircでの会話をtwitterに流したいよね」と話していたんで使ってみた.nadokaは名前がムカつくので使いませんでした.


で,結論を言うと3時間ほど試行錯誤してtwitterにメッセージを流せるようになりました.


あと,をfollowしてくれるとうれしいです.いまひとりぼっちなので寂しいです.オナニー状態です.followしてくれたら,面白いことを喋ることを約束します.

諸般の事情により,twitterに流すのを止めました.

ハマりどころ

autumn-leavesはfacetsっていうライブラリのバージョン2.3.0に依存しています.で,それ以外のバージョンを入れると動かない.で,こうやる.

gem install facets -v=2.3.0

てか,autumn-leavesが正確な依存関係をチェックすればいいと思う.

あと,facetsが標準クラスをいじくっているせいでtwitter-0.2.6がまともに動かんかった.

ちょー適当な手順

ruby script/generate leaf twitter

で,生成されたleaves/twitter.rbに,twitter-0.2.6のpostを適当に変更した以下のメソッドを加える.

  def did_receive_channel_message(stem, sender, channel, msg)
    stem.message msg

    require 'uri'
    require 'cgi'
    require 'net/http'
    require 'kconv'

    url = URI.parse("http://twitter.com/statuses/update.xml")
    req = Net::HTTP::Post.new(url.path)

    req.basic_auth('username', 'passwd')
    req.set_form_data({'status' => msg.toutf8})

    response = Net::HTTP.new(url.host, url.port).start { |http| http.request(req) }
  end

その後に,以下の二つのファイルを適当に変更する.

vi config/seasons/testing/leaves.yml
vi config/seasons/testing/database.yml

databaseの作成とtableの作成

rake db:create
rake db:populate

サーバの起動

rake app:start

rakeでサーバを立ち上げるって感覚に驚いた.makeでdaemonが立ち上がったらビビるだろ.すくなくとも俺はびびる.