TumblrPosts.js が新しくなりました
この記事は賞味期限切れです。(更新から1年が経過しています)
だいぶ前に書いた”TumblrPosts.js“ですが、意外と使われる方がいらっしゃったのと、 わりと適当だったり、よろしくない部分も多く見られたので少し見直しを行いました。
TumblrPostsとは
TumblrPostsは、「Tumblrでタグリスト/新規投稿リストを出力してみる」で紹介したjQueryプラグインです。
TumblrのAPIでは、最新のポストのリストを取得する事ができますが、 タグの一覧を取得する方法が無かった為、それを可能にする為のライブラリです。
新しいTumblr APIについて
今現在、Tumblrからは新しいAPIが提供されています。
- API | Tumblr : 新しいAPI
- Tumblr API v1 | Tumblr : 古いAPI
(投稿リストを取得する上で)大きく変わったのはAPI Keyを必要とするようになった点、 それから最大取得件数が50件から20件に減った点です。タグ自体のリストの取得機能は今見る限りではなさそうです。
TumblrPostsはAPIへのリクエストを繰り返して投稿リストをまとめていくタイプのライブラリなので、 最大取得件数が半分未満に減る事で、リクエスト回数が倍以上に膨れ上がる事になります。 投稿数が多いブログではパフォーマンスに大きな影響を与えるので、ちょっとまずそうですね。
そういったわけで、今回のTumblrPostsでも引き続き旧バージョンのAPIを使用します。 旧バージョンの提供がなくなったり、新バージョンでの機能強化があったらその時にまた考えます。
新しいTumblrPostsの主な変更点
基本的な使い方はそのままに、下記の点を修正しています。
- 依存ライブラリをjQueryのみに(jquery.class.jsから切り離しました)
- jQuery.on/off に対応(bind/unbindも引き続き使えます)
- 取得件数の設定を詳細に
- getTags()のソートの初期設定を変更
4について、旧バージョンでは投稿数での降順にソートされていましたが、 デフォルトではソートなしで、引数でソートの方向を指定出来るようにしました。
使い方
基本的な使い方
旧バージョンから大きな変更はありません。
// インスタンスを生成
var myTumblrPosts = new TumblrPosts();
// 読み込み完了時のイベントハンドラを設定
myTumblrPosts.on("complete", function(){
var $ul, tags;
// getTags() : タグリストを取得
tags = this.getTags();
$ul = $("<ul>");
$.each(tags, function(i, tag){
$ul.append(
$("<li>").text(tag.name + " (" + tag.count + ")")
);
});
$ul.appendTo( $("#your-own-container") );
});
// 読み込みを開始
myTumblrPosts.run();
タグリストのソート
getTags() の引数に “asc” または “desc” を渡すと、投稿数でソートを行います。
引数がない場合は、ソートを行いません。
myTumblrPosts.getTags("asc"); // <= 投稿数の少ない順にソート
myTumblrPosts.getTags("desc"); // <= 投稿数の多い順にソート
まとめ
TumblrPosts.js のダウンロードはこちらから。
昔書いた物の粗が見えるようになるのは、成長の証でしょうか。
コメント