hatena-bookmarkの修正
服部さん作のhatena-bookmark-modeを使ってみようと思ったら、一覧の取得からまったくできなくてこまった。
調べてみるとエントリポイントからもらえるservice.postとかservice.feedのURLが相対URLになっているらしく、情報を取りにいけていなかった。サービス提供元見るのが確実だろうと思って、はてなブックマーク AtomAPIの情報を確認した。
http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AFAtomAPI
ところがどっこい、ここにあるレスポンスには絶対URLが返されるように書いてあるじゃん!どーいうこと?
仕方が無いので相対URLに対応するパッチを作成
@@ -142,7 +142,7 @@ (in-package "editor") -(defvar *hatena-bookmark-endpoint* "http://b.hatena.ne.jp/atom") +(defvar *hatena-bookmark-endpoint* "http://b.hatena.ne.jp/") (defvar *hatena-bookmark-basedir* "~/.hatena") (defvar *hatena-bookmark-account-file* @@ -227,7 +227,7 @@ ) (defun hatena-bookmark-get-root (username password) - (atomm::atomm-get-root *hatena-bookmark-endpoint* + (atomm::atomm-get-root (format nil "~A~A" *hatena-bookmark-endpoint* "atom") username password)) @@ -274,9 +274,13 @@ (links (cdr (car root)))) (setf (hatenab_acc-title hatenab_acc) title) (setf (hatenab_acc-service.post hatenab_acc) - (cdr (assoc "service.post" links :test #'equal))) + (format nil "~A~A" + *hatena-bookmark-endpoint* + (cdr (assoc "service.post" links :test #'equal)))) (setf (hatenab_acc-service.feed hatenab_acc) - (cdr (assoc "service.feed" links :test #'equal))) + (format nil "~A~A" + *hatena-bookmark-endpoint* + (cdr (assoc "service.feed" links :test #'equal)))) hatenab_acc)))) (defun hatena-bookmark-account-load ()
これで一覧が取得できた。良かった良かった。