サスケット さんの↓こちらに触発されて、作ってみました。
ひたすら無題 Ver2.0 | “Sleipnir+SeaHorseで全サイトはてブ化”をできるようにした
私は Sleipnir 使いなのですが、最近はてなブックマークを使い始めたので、以下の SeaHorse スクリプトを導入。はてなブックマークの情報がページの下に出てくる。
個人的趣味で、ページの下部のかわりにアウトプットに表示されるようにしてみました。まだまだ改良の余地はありまくり (数回に1回は取得に失敗しますw。多分サスケットさんが行った修正と同様の方法で治るのだと思うのですが……) ですが、久々のプログラミングで疲れたので、今日はここまでにしておきます。
var MAXCOMMENTNUM = 30;
var HATENAIDLEN = 17;
var PROXY = "http://b.hatena.ne.jp/entry/json/?url="
function checkStatus()
{
if ((httpObj.readyState == 4) && (httpObj.status == 200))
{
displayData();
}
}
function displayData()
{
var data = eval("("+httpObj.responseText+")");
if (data && data.count > 0)
{
sleipnir.API.OutputAddString("■" + data.count + "user");
bm = data.bookmarks;
intCommentNum = 0;
strComment = ""
for (i=0; i < bm.length; i++)
{
if (intCommentNum >= MAXCOMMENTNUM)
{
sleipnir.API.OutputAddString("more...");
break;
}
if (bm[i].comment)
{
strComment = "";
strComment += bm[i].user + " ";
strComment = strComment.slice(0, HATENAIDLEN);
strComment += bm[i].comment;
sleipnir.API.OutputAddString(strComment);
intCommentNum++;
}
}
sleipnir.API.OutputCurSel = 0;
}else{
sleipnir.API.OutputAddString("■0user");
}
}
var blnCalled = false;
sleipnir.API.OutputClear();
sleipnir.API.OutputVisible = true;
if (_document != null && blnCalled != true)
{
if (self.location.href == top.location.href)
{
blnCalled = true;
var uri = top.location.href;
httpObj = new ActiveXObject("Msxml2.XMLHTTP");
httpObj.onreadystatechange = checkStatus;
httpObj.open("GET", PROXY + escape(uri), true);
httpObj.send(null);
}
}
と、このようになんとなくプログラムっぽい出来にはなっているように見えないこともありませんが、見かけにだまされてはいけません。弾さん風に表現するなら、弾さんが、
404 Blog Not Found:プロ^2グラマーは社交が8割
趣味でプログラムをするシュミグラマーや、本職は別にあって、たまにプログラムするタマグラマーはとにかく、プログラミングそのものを職にしているプロプログラマー(以下プロ^2グラマー)の業務の8割は、実はプログラムを書く事ではない。
の 『プロ^2グラマー』 であるのに対し、私は 『あま^3グラマー (詰めが甘々なアマチュアプログラマー)』 なので、何が起こるか分かりません。ご注意を。また、「とてもじゃないが酷くて見てらんない」 とお考えの皆様には、ぜひいろいろとご教示いただきたく存じます。
具体的な使用法は、αを取ってもいいかな、と思った頃に書きます。今は参考リンクだけ示させていただきます。
■参考
・kaz::hatena - Sleipnir+SeaHorseで全サイトはてブ化v3
・第二章 プログラムを作って体験しよう:Internet Explorerの場合のデータの受け取り方
・UserAction Extension|タブブラウザ Sleipnir プラグイン|Fenrir Extensions Center
・タブブラウザ Sleipnir オンラインデータベース(Sleipnir.API リファレンス)
・タブブラウザ Sleipnir オンラインデータベース(組み込みスクリプトの書き方)