Meadow からはてなダイアリーに投稿したい

重い腰を上げて以下の2つを試してみました。

hatena-mode はけっこう前から知ってるけど
simple-hatena-mode なんてのもあったんですね。
で、simple-hatena-mode の方が新しいようなので
そっちを先に試してみることにしました。


えーと、先に言っておくと2つともうまく動いていません。
だからここに書かれている通りに設定してもたぶんダメです。
ただ、後から再挑戦するためにもやったことを書き残しておきます。
それでは simple-hatena-mode から。

simple-hatena-mode

simple-hatena-modeリリース - Kentaro Kuribayashi's blog
http://coderepos.org/share/wiki/SimpleHatenaMode
simple-hatena-mode では結城さん作のはてダラを利用しているので
まずははてダラをダウンロードする必要があります。
はてなダイアリーライター(略称:はてダラ)
ダウンロード用にファイルが置かれているわけではなく
ソースが丸ごと置いてあるだけなのでコピペして適当に保存しないとダメなようです。
また、パスが通ってるところに置いておくと
simple-hatena-mode の設定が楽になると書かれているので
そうすることにしました。


こういうときにいつも使っている C:/Meadow/bin に
また今回も置こうかと思ったのですが
そういえば C:/home/gan2/bin に置いたほうがいいよな・・・。
とか今更ながらに気付いたので
C:/home/gan2/bin を作ってそこに置いておきました。
C:/home/gan/bin/hw.pl と。


余談ですが
環境変数 PATH に C:/home/gan2/bin を追加して
それを Meadow に反映させるためには
Meadow を再起動するだけではダメで
Windows を再起動しないといけないようです。
コマンドプロンプトはそれを再起動するだけで反映されるのになぁ。
Meadow のちょっと不便なところを1つ見付けました。


で、はてダラ(hw.pl)を試しに実行してみたのですが
Crypt::SSLeay 関係のエラーが出てうまく動きません。
なので ppm を使って Crypt::SSLeay をインストールしました。

> ppm install http://theoryx5.uwinnipeg.ca/ppms/Crypt-SSLeay.ppd
参考

これで hw.pl は大丈夫になったようです。


あ、そうそう。
hatena-mode にしろ simple-hatena-mode にしろ
はてな記法の入力支援をしてくれる hatenahelper-mode
があった方が便利らしいので入れておきました。
はてな記法を入力支援する hatenahelper-mode - おもてなしの空間


次は simple-hatena-mode の設定です。
http://coderepos.org/share/wiki/SimpleHatenaModeをダウンロードして
eslip置き場(C:/Meadow/site-lisp)に置きます。
.emacs に以下の記述を追加します。

;;; simple-hatena-mode の設定
;; http://coderepos.org/share/wiki/SimpleHatenaMode
;; はてな記法を入力支援する hatenahelper-mode も一緒に使ってる
;; http://d.hatena.ne.jp/amt/20060115/HatenaHelperMode
(require 'simple-hatena-mode)
(add-hook 'simple-hatena-mode-hook
          '(lambda ()
             (hatenahelper-mode 1)))
(setq simple-hatena-default-id "gan2")

"gan2" ってなってるところははてなのユーザIDです。
simple-hatena-mode は複数の ID に対応していることが売りのようですが
ここで設定しているのはメインで使う ID です。
僕は gan2 しか使ってないのですが。


そして Meadow を再起動後
M-x simple-hatena-setup を実行します。
このコマンドで簡単にセットアップできるようです。ありがたや。
ID とグループについていくつか質問されるので適当に答えます。
これで設定が終わりました。


M-x simple-hatena を実行すると ID を聞かれます。
それに答えれば実行日の日付で日記ファイルが開かれるそうです。
・・・そうですとあるのは、僕がそうなっていないからです。
僕の場合は Wrong type argument: stringp, nil
なんて冷たいメッセージがミニバッファに表示されるだけです。


もしかして日記ファイルは自動では作られないのかな?と思い
~/.hatena/gan2/diary/ 以下に
はてダラ形式で日記ファイルを自分で作りそれを開いてみました。
~/.hatena/gan2/diary/2008-01-13.txt
お!モードの欄が Simple Hatena になってる!
そして * を入力すると自動で *1200204045* とかに展開される!
これでうまくいったかな?と意気揚々と C-c C-p(ポスト)してみました。
Now posting ...   ワクワク


・・・あれ?
次にうつらないけどこれでいいのかな?
適当にキーを叩いてみる。
あ、メッセージ消えた。
これで送れてるんだろうか?と思いブラウザで確認してみる。
送れてないじゃん・・・。(´・ω・`)
ということで simple-hatena-mode についてはここで止まってます。
あとなんか、現在のバッファが simple-hatena-mode に関連付けられていない
みたいなメッセージが出ることもあったんですが
今再現できないのでそれもよく分かりません。
一体どういうことなんだとソースをちょっと見てみましたが
なんだか面倒になってきちゃったので
hatena-mode にうつってみることにしました。


ああ・・・なんかけっこう書いてる気がするな。。
でもがんばって書き上げてしまうぞ!

hatena-mode

http://d.hatena.ne.jp/hikigaeru/20040617
まずhatena-modeをダウンロードします。
hatena-mode ディレクトリのまま elisp 置き場に置いておきます。
.emacs に以下を追加します。

(autoload 'hatena "hatena-mode" "hatena mode" t)
(setq hatena-usrid "gan2")
(setq hatena-plugin-directory "C:/Meadow/site-lisp")

autoload のところは公開元の説明では load になっていますが
clmemo@aka: hatena-mode の設定によると
autoload の方がよさげなので書き換えました。
hatena-plugin-directory は何のために書くのかよく分からないのですが
適当に値を設定しておきました。(たぶんこれでいいんだろう。。)


実行は M-x hatena です。
実行するとパスワードを聞かれるので答えます。
そうすると自動で実行日の日付でファイルが開かれます。
おお!やっぱり自動がいいね!
なんで simple-hatena-mode だと自動で開かれないんだ!
とかうれしく思いながら、今度こそとテスト投稿を試みます。
投稿は C-c C-p です。
するとミニバッファに以下のメッセージが・・・

save-current-buffer: Opening input file: no such file or directory, c:/home/gan2/.hatena/Cookie@hatena

あーーもうどっちーーよーーどっちくなってきたよーーー(つД`)
公開元のコメントに同じような症状で困っている人を見付けましたが
もう面倒になってきたのでそこからは何もしていません。

追記

コメントで助け舟を出して頂いたので試してみました。
https://sourceforge.jp/projects/hatena-mode/で配布されている hatena-mode には
curl を扱う部分にバグがあったようです。
なので以下のパッチを当てて修正しました。

--- hatena-mode.el	28 Oct 2005 09:14:30 -0000	1.14
+++ hatena-mode.el	6 Jul 2007 10:29:21 -0000
@@ -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")

参考: http://d.hatena.ne.jp/sirocco634/20071223#1198394892


そして早速 M-x hatena して C-c C-p してみました。
すると・・・
checking diary ....
modify diary
20080113 => http://d.hatena.ne.jp/gan2/edit?date=20080113
posted
Quit
と順番にメッセージが出力されて
おお!これは遂にきたか!と思ってブラウザで確認してみたら
かわってねーーーーっ!(;゚Д゚)
な・・・なんでだろう?
いかにも成功したっぽいのになぁ。。
どこかちょっとした間違いがあるのかもしれないで
もう少し調べてみようと思います。


次に試すときはうまく動いてくれることを祈ります。2つとも。