Hatena::ブログ(Diary)

星屑日記 このページをアンテナに追加 RSSフィード

2012-01-21

Tumblrのリブログツリーを表示するアプリを作ってみた

Tumblrのリブログツリーを表示するアプリを作ってみたを含むブックマーク

 Tumblr面白いですよね。なかなか飽きない。毎日毎日リブログしまくってると、そのうちどのようなアカウント経由で自分ダッシュボード美少女画像が流れてくるのか気になりますよね。気になりませんか? 気になりませんね。そうです。正直誰経由であれ自分ダッシュボード美少女画像が流れてくればいいんです。でも、たまにはリブログの流れに興味が湧くときもある。そんなときのためのアプリを作ってみました。Tumblrポストページを入力すると、そのリブログ情報ネストした形でリスト表示します。これによってどのような流れでリブログ拡散しているか、少しはわかりやすくなると思います。

 このアプリリブログ情報を表示させるには、そのポストページに"Show more notes"ボタンが存在することが必要です。すなわち(おそらくデフォルトで)50notes以上のポストしかリブログ情報を取得できません。またlikeは完全無視です。

 作ってみて難しかったのはリブログ情報配列から木構造に変換する部分です。中には同じアカウントで複数回リブログしている場合もあり、お前どんだけその画像が好きなんだよと、したがって同じアカウントノードが複数作られます。そこで、あるアカウントリブログアカウントノードが複数ある場合、いちばん新しい(つまり深い)ノードに対応するようにしました。これで正確にリブログ情報を再現できているか不安ですが。

http://deco-mayu.appspot.com/

ソースコードGitHubに置きました。

https://github.com/yuribossa/TumblrReblogTree

以下のような形で表示されます。

f:id:intheflight:20120122003055p:image


追記(20120124)

 はてぶコメントで某諸事情ダメだったとあって、ログ見たら時折google.appengine.runtime.DeadlineExceededErrorが出てたのでそれかも。自分で試した中では4000notesはapp engineサーバが正常に返してくれたが、ツリー構築のエラーが多くて(コンソール開くとわかる)ツリーは正確に再現できてないと思います(勘だけど)。これは大きなnotes数になるとTumblrの返してくれるnotesデータに抜けが多くなるためだと思われます。某諸事情もローカルで試してみたら、サーバ側は時間かかったけれどデータ返してくれて、ツリー構築の段階でエラー吐きまくってました。Tumblrさんもあまりに巨大なnotesになるとすべてを追うのは大変なんですよ。

トラックバック - http://d.hatena.ne.jp/intheflight/20120121/p1