動いてくれるかな。
hatena-mode が動いてくれなかった件。
そもそも FSF Emacs に移行してから使ってませんでした。
使ってみると、Cookie が正しく保存されてないみたいです。
最新の hatena-mode を CVS から co したものに置き換えたんですが、それでも今のはてなでは使えないんでしょうか……
どうやら `rk' という名前の Cookie が、curl が保存する Cookie file にないのが問題の様なんですが、その他にも色々とありそうな予感がします……
そもそも hatena-mode ではその Cookie を利用しようとしているので、hatena-mode の Cookie の扱いがおかしい訳ではないのかもしれません。
多分、login で Cookie が保存できていないところに問題があるんでしょうが、それが hatena-mode の問題なのか、curl の問題なのか、はたまたはてなの仕様変更か……
取り敢えず hatena-login でやってる内容そのままに、curl で login を試みてみましたが、やはり login できません。
正しい動作はどういうものか、ということで、Firefox 上でのはてなへのログインを行って、LiveHTTPHeader で post data を確認すると、hatena-login で送っている post data と少し違っているようです。
中でもアカウントを指定する key として指定している文字列が違うのが目立ちます。
hatena-mode では `key=アカウント名' となっているのですが、ブラウザで実行したときの内容だと `name=アカウント名' になっています。
これをブラウザで動作させたときのものに合わせて curl で実行してみると、今度は `rk' を名前とする Cookie が保存されました。
これなら行けそうかな。
この記事が正しく post されたなら、一応の対応はできたってことになるでしょうかね。
という訳で、今のところは、
$ diff -u hatena-mode.el.orig hatena-mode.el --- hatena-mode.el.orig 2005-10-28 18:14:30.000000000 +0900 +++ hatena-mode.el 2009-05-17 22:04:44.710188100 +0900 @@ -338,7 +338,7 @@ (call-process hatena-curl-command nil nil nil "-k" "-c" hatena-cookie "-x" hatena-proxy - "-d" (concat "key=" hatena-usrid) + "-d" (concat "name=" hatena-usrid) "-d" (concat "password=" password) "-d" (concat "autologin=1") "-d" (concat "mode=enter")
としただけです。