はてブを使っているEmacsユーザに朗報です!

今まで~/.hatenabookmarkを作るために
http://coderepos.org/share/browser/lang/shellscript/misc/anything-hatena-bookmark-get-dump
を手動実行したりcrontabに登録する必要がありましたが、この度不要に
なりました。

~/.emacs.d/init.elに以下の設定をするだけで~/.hatenabookmarkを自動
更新してくれます。デフォルトでは1時間に1回更新します。

(setq helm-hatena-bookmark:username "Your Hatena Account")
(helm-hatena-bookmark:initialize)

使用方法は今までどおりM-x helm-hatena-bookmarkです。私は⌘-bに割り
当てています。

(define-key global-map (kbd "s-b") 'helm-hatena-bookmark)

すでにMELPAにもリリースされているので、M-x package-install
helm-hatena-bookmarkでインストールできます。

あと、これとは別にコマンド実行したらすぐ一覧を出す ようにしました。

helm-hatena-bookmark

今まで不便だと感じつつ使っていて、あ、自分が作ったツールだから直せ
ばいいのか!と気づきましたw

あまりユーザはいないようなので、カスタマイズ可能にはせず、ばっさり
切り捨てました。必要なら変更しますのでIssueやPull requestなどお願
いします。

~/.hatenabookmarkの作成は今までのシェルスクリプトとほぼ同じです。

内部でcurlをstart-processで非同期実行し、sentinelで終了通知が来た
らGNU sedで置換しています。高速化のために外部コマンドを使うことに
しました。

私のはてブ数6030の場合、curlが約30秒、sedが約0.5秒でした。sedでの
call-process-regionが速いのが意外でした。curlは非同期で動くので、
60秒とかに増えても気にならないと思います。

sedの特殊な文法を使っているので、OSXのsedでは使えません(見つからな
いと(helm-hatena-bookmark:initialize)がエラーで止まります)。

brew等でGNU sedをインストールしてください。

$ brew install gnu-sed

良い実装が出来て満足。