はてブを使っている 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 でインストールできます。
あと、これとは別にコマンド実行したらすぐ一覧を出す ようにしました。
今まで不便だと感じつつ使っていて、あ、自分が作ったツールだから直せばいいのか!と気づきました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
良い実装が出来て満足。