動いてくれるかな。

hatena-mode が動いてくれなかった件。
そもそも FSF Emacs に移行してから使ってませんでした。


使ってみると、Cookie が正しく保存されてないみたいです。
最新の hatena-modeCVS から co したものに置き換えたんですが、それでも今のはてなでは使えないんでしょうか……


どうやら `rk' という名前の Cookie が、curl が保存する Cookie file にないのが問題の様なんですが、その他にも色々とありそうな予感がします……
そもそも hatena-mode ではその Cookie を利用しようとしているので、hatena-modeCookie の扱いがおかしい訳ではないのかもしれません。
多分、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")

としただけです。