Google Reader に Livedoor Reader 風ピンを追加してみるグリモン機能追加
Google Reader に Livedoor Reader 風ピンを追加してみるグリモンに、JavaScript 多少そらでも書けるようになったか調査を兼ねて、はてなブックマークの件数を取得する機能を追加してみました。エントリ上で b を押すとタイトルの後ろに件数が表示されます。
こんな感じ。
以下追加したコード。
-
} else if (event.keyCode == 66) { // b
-
var href = title.getElementsByTagName('a')[0].href;
-
if (document.getElementById('hateb:' + href) != undefined) {
-
// retrieved data already
-
return;
-
}
-
var content = '<?xml version="1.0" encoding="UTF-8"?><methodCall><methodName>bookmark.getCount</methodName><params><param><value><string>' + href + '</string>\
-
</value></param></params></methodCall>';
-
GM_xmlhttpRequest({
-
method: 'POST',
-
url: 'http://b.hatena.ne.jp/xmlrpc',
-
headers: {
-
'User-Agent': 'Mozilla/4.0 (compatible) Greasemonkey',
-
'Accept': 'application/atom+xml,application/xml,text/xml',
-
'Content-type': 'application/x-www-form-urlencoded',
-
},
-
data: content,
-
onload: function(responseDetails) {
-
var parser = new DOMParser();
-
var dom = parser.parseFromString(responseDetails.responseText, "application/xml");
-
var entries = dom.getElementsByTagName('member');
-
if (entries.length != 1) {
-
return;
-
}
-
count = entries[0].getElementsByTagName('int')[0].textContent;
-
// hateb link
-
var hatebLink = document.createElement('a');
-
hatebLink.setAttribute('href', 'http://b.hatena.ne.jp/entry/' + href);
-
hatebLink.setAttribute('target', '_blank');
-
// hateb icon
-
var hatebLinkA = hatebLink;
-
var hatebImg = document.createElement('img');
-
hatebImg.setAttribute('src', 'http://d.hatena.ne.jp/images/b_entry.gif');
-
hatebImg.setAttribute('width', 16);
-
hatebImg.setAttribute('height', 12);
-
hatebImg.setAttribute('style', 'margin-left: 2px; border: none');
-
hatebLinkA.appendChild(hatebImg);
-
// hateb count
-
var hatebLinkB = hatebLink;
-
if (count == 0) {
-
// not bookmarked yet
-
} else {
-
var hatebCount = document.createElement('img');
-
hatebCount.setAttribute('src', 'http://b.hatena.ne.jp/entry/image/' + href);
-
hatebCount.setAttribute('style', 'margin-left: 2px; border: none');
-
hatebLinkB.appendChild(hatebCount);
-
}
-
// hateb span
-
var hatebBlock = document.createElement('span');
-
hatebBlock.setAttribute('id', 'hateb:' + href);
-
hatebBlock.appendChild(hatebLinkA);
-
hatebBlock.appendChild(hatebLinkB);
-
title.appendChild(hatebBlock);
-
}
-
});
-
}
b を押すとはてなブックマークの Atom API で件数を取得して、1 件以上あれば件数の画像をはてなから取ってきてタイトルの後ろの追加しています。0 件の場合も空白の 0 件な画像が返ってくるのでそれでいいんじゃんって感じもしますが、何となくそこにリンク貼るのがイヤだったのでこうしてみました。使い方をもう一度簡単にまとめると、てか簡単な機能しかないですが、
- i でエントリにピンを立てる
- o でピンを立てたエントリを開く
- b でフォーカスのあるエントリのはてなブックマーク件数を表示する
って感じです。
Livedoor に続きはてなも直接画像を使わせていただいております。ごめんなさい。
ファイルは Google Code か userscripts.org からどうぞ。
Google Code
http://code.google.com/p/googlereaderpin/
userscripts.org
http://userscripts.org/scripts/show/17714
About this entry
You’re currently reading “ Google Reader に Livedoor Reader 風ピンを追加してみるグリモン機能追加 ,” an entry on forever 5 years old blog
- Published:
- 6pm on 2008/01/16
- Category:
- Javascript, Greasemonkey, Firefox, プログラミング
- Related Posts:


No comments
Jump to comment form | comments rss [?] | trackback uri [?]