HatenabarのD!の不具合

Firefoxに登録して,はてなのサービスとの連携を容易にするHatenabarを使って重宝しています。その機能のひとつにD!(言及する)ボタンがあって,自分のダイアリーで話に触れたいWebページを開いてこのボタンを押すと,自分のダイアリーの編集画面を開いて,WebページのURLとタイトルからハイパーリンクを自動で生成する機能があります。

前から気にはなっていたのですが,ログインしていない状態でD!を押すと,Internal Server Errorが表示されて期待したように動作しない問題があります。そのような場合,先にログインページにリダイレクトしてくれてもよいんじゃないかと思います。はてなアイデアに報告があったので投票しておきました(idea:2456)。また,そのバリエーションで,Firefoxで新規のタブを開いた状態(まっさらな空白ページ)でD!を押すと,面白いことにid:referさんのダイアリーが開きます(プライベートモードなので内容は見えませんが)。こちらも報告がありました(idea:4167)。

興味本位に,現在の最新版のHatenabar 0.3.3の中をみてみました。

idea:4167の方は,hatenabarOverlay.jsのhatenabarRefer関数の中に以下のようなURLの組み立ての行があります(行は折り返してあります)。

url = 'http://d.hatena.ne.jp/refer?cite=' + encodeURIComponent(cur_url)
    + '&title=' + encodeURIComponent(title)
    + '&body=' + encodeURIComponent(body);

referはサービスのエンドポイントなんでしょうね。ここで,cur_url, title, bodyが空なのでhttp://d.hatena.ne.jp/refer?cite=&title=&body= を開こうとしているのか,cite=about:blankだけは伝わっているのか,いずれにしても最終的にhttp://d.hatena.ne.jp/refer/にリダイレクトされてしまうようです。ログインしていると,ちゃんとダイアリーの編集ページに飛ぶので,サーバ側の問題かもしれません。あるいは,スクリプト中にif文で,cur_urlが空ならリダイレクトしない仕様にしてもよいかも知れません。しかし,http://d.hatena.ne.jp/refer?...http://d.hatena.ne.jp/refer/ の名前の衝突があっておもしろいと思いました。

idea:2456の方は,http://d.hatena.ne.jp/refer のサービスの中にバグがあるのでしょうね。これはサーバ側なのでこちらではうかがい知れません。修正されるといいなと思います。