2009-03-22(日) [長年日記]
■ mixi2gmailを動くようにしたり
mixiの日記を読むために、yoosee作のmixi2gmailを使っているんだけど*1、数日前からどうもHTMLメールとして認識されなくなってしまった。作者のブログは1ヶ月くらい更新ないし、渡米中だからmixiなんて見てないのかな……と思って自力で解決。
ホントは夕べ、ちゃちゃっとやろうと思ったんだけど、自宅のマシンにrubygemsが入ってなくて、aptitudeで入れ始めたら(メモリ極貧のVMwareなので)いつまでたってもgem updateが終わらな……以下gemに関する愚痴1024行省略……今朝やった。
バグの本題に入る前にまずつまづく。Mechanizeが最近はNokogiriを使うようになっていて、これがなぜかmixiトップのparseに失敗する。コードを追っかけて、WWW::Mechanize::html_parser=で旧来のHpricotに置き換えられることを知って回避。Hpricot互換を謳うNokogiriが、挙動が違うのもいかんだろうと思ったので、バグレポートを送るなど。おかげで(いまごろ)lighthouseのアカウントを取った。
肝心の問題は、今までのコードでContent-typeが2行出ていて、最初が「text/plain」次が「multipart/mixed」。これまでは後が優先されていたのに、最近Gmail側の実装が変わって前者が採用されるようになったらしい。どっちが正しいのかな(ここでRFCを調べるのが正しい姿勢です。調べてないけど)。
あとは最新のMechanize/Hpricotで動くように微調整をしたり、どうも長文が文字化けするのはHTMLがそのまま入っているせいだとあたりをつけて、base64にしてみたり。いちおうパッチは送ったけど、反応がなかったらCodeRepos.orgにでも入れちゃうか。
差分はgistにて。これのために(いまごろ)GitHubのアカウントを取ったり。lighthouseといいGitHubといい、なんか変な進歩のある日だったなぁ。もっとも、デバッグに使ったマシンに入っているのはDebian etchなのでgitが古いのか、GitHubのconfigが動かないっぽい。とほほ。
2009-03-23 追記
CodeRepos.orgに入れました。あえてGitHubではなく(笑)。
http://svn.coderepos.org/share/lang/ruby/mixi2gmail/
*1 おかげさまでmixiの画面はもう何ヶ月も拝んでいない。
渡米してても友達のmixi日記は読んでるんですけど、最近あまりに時間が無くてバグに気づいても何も出来てませんでした。修正ありがとうございます!
「どうやら忙しんだろうなー」とは思ってたんですよ。じゃあ、CodeReposの方にもこっちから入れておきます。
etch の git は 1.4 なので github で使えない気がします。http://aligach.net/diary/20080910.html#p01
あ。すでに書いてあった。すんません。
まさにその記事をwassrで教えてもらったのでした(笑) >wtnabe