はてなとdel.icio.usの被ブックマーク数を得るプラグイン(その2)

2007年1月2日
このプラグインを改良したバージョンを公開しました。
Movable Type 3.3以降専用ですが、より簡単に利用できるようになっています。

昨日のエントリーに続き、はてなとdel.icio.usの被ブックマーク数を得るプラグインについて解説します。
今日は、各エントリーの被ブックマーク数と、ブックマークによるランキングを表示する方法です。

なお、プラグインはMT3.2専用に作ってあります。

1.ファイルのアップロード

昨日のエントリーでファイルのダウンロードについて書きましたが、ダウンロードしたファイルを解凍すると、「plugins」フォルダの中に「BookmarkCount.pl」というファイルもできます。
このファイルをまだアップロードしていない場合は、Movable Typeのディレクトリ→「plugins」ディレクトリ→「BookmarkCount」ディレクトリの中に、このファイルをアップロードします。
このファイルがプラグイン本体にあたります。

2.各エントリーの被ブックマーク数を表示する

プラグインをインストールすると、いくつかのテンプレートタグが追加されます。
まず、各エントリーの被ブックマーク数を表示するタグとして、以下の3つが追加されます。
MTEntriesタグのコンテナの中か、エントリーアーカイブテンプレートの中で使うことができます。

テンプレートタグ出力する内容
MTEntryHatenaBookmarkCountはてなブックマークでの被ブックマーク数
MTEntryDeliciousBookmarkCountdel.icio.usでの被ブックマーク数
MTEntryTotalBookmarkCountはてなとdel.icio.usの被ブックマーク数の合計

例えば、以下のようにタグを組み合わせると、最近10エントリーのタイトルと、はてな/del.icio.usの被ブックマーク数、およびそれらの合計が出力されます。

<MTEntries lastn="10">
<$MTEntryTitle$> | <$MTEntryHatenaBookmarkCount$> | <$MTEntryDeliciousBookmarkCount$> | <$MTEntryTotalBookmarkCount$><br />
</MTEntries>

なお、昨日のエントリーではてなとdel.icio.usの巡回について書きましたが、上記のタグで表示される被ブックマーク数は、巡回結果から得られる値です(リアルタイムの値ではありません)。

3.エントリーを被ブックマーク数でランキングする

エントリーを被ブックマーク数でランキングして出力するためのタグとして、以下の3つが追加されます。
いずれもコンテナタグで、コンテナ内ではMTEntry系のテンプレートタグを使うことができます。
また、「lastn="x"」のアトリビュートを付加すると、出力するエントリーの数を指定することもできます。

テンプレートタグ出力する内容
MTEntriesHatenaBookmarkRankingはてなブックマークでの被ブックマーク数でランキングする
MTEntriesDeliciousBookmarkRankingdel.icio.usでの被ブックマーク数でランキングする
MTEntriesTotalBookmarkRankingはてなとdel.icio.usの被ブックマーク数の合計でランキングする

例えば、以下のようにタグを組み合わせると、はてなブックマークでの被ブックマーク数上位10エントリーのタイトルと、はてなの被ブックマーク数が出力されます。
また、HTMLのolタグによって、各行の先頭には1.、2.・・・の連番がつきます。

<ol>
<MTEntriesHatenaBookmarkRanking lastn="10">
<li><$MTEntryTitle$> | <$MTEntryHatenaBookmarkCount$></li>
</MTEntriesHatenaBookmarkRanking>
</ol>

4.MTEntryDeliciousLinkタグ

上記以外に、「MTEntryDeliciousLink」というテンプレートタグも追加されます。
このタグは、del.icio.usの個々のURLに対するブックマーク一覧のページのURLを出力します(http://del.icio.us/url/32文字の英数字)。

例えば、以下のようにすると、del.icio.usでの被ブックマーク数上位10エントリーのタイトルと被ブックマーク数が出力され、その部分をクリックすると、そのエントリーのブックマーク一覧が表示されるようになります。

<ol>
<MTEntriesDeliciousBookmarkRanking lastn="10">
<li><a href="<$MTEntryDeliciousLink$>" target="_blank"><$MTEntryTitle$>(<$MTEntryDeliciousBookmarkCount$>)</a></li>
</MTEntriesDeliciousBookmarkRanking>
</ol>

なお、はてなブックマークで各エントリーのブックマーク一覧を表示したい場合は、「http://b.hatena.ne.jp/entry/<$MTEntryPermaLink$>」へリンクするようにします。

5.巡回と再構築

はてなとdel.icio.usを巡回して被ブックマーク数の情報を収集したら、当プラグインのテンプレートタグを使っているテンプレートを再構築します。
再構築することで、巡回結果が各ページに反映されます。

なお、拙作のPerl版ダイナミック・パブリッシングをお使いで、かつ動的に出力するようにしているテンプレートの中で当プラグインのテンプレートタグを使っている場合は、巡回が終わった時点でキャッシュが無効になりますので、自動的に巡回時点の非ブックマーク数の情報が各ページに表示されます。