Date: 2005-10-15
Tags: it-pc

mixiの新着情報をRSSで取得

昨日の Googleの「Personalize your Google homepage」を使う で、RSSをチェックしてると書きましたが、ついでにmixiの新着情報もRSSで取得しています。取得には プチツール - mixipress を使わせてもらいました。

mixipressには WWW:MixiHTML:Template が同梱されていますが、LWP::Debugが見つからないとか言われてなんかうまく動かなかったので、portsの p5-WWW-Mixi-0.33p5-HTML-Template-2.7_1 を入れてそっちを使うようにしたところ、日記取得以外はうまく動いてくれたようです。

しかし...

ここで問題が。

ふつうのRSSリーダーであれば問題にならなかったのかもしれませんが、Googleパーソナライズドホームは各RSSにつき最大7件までしかitemを表示してくれません。そして、このツールの生成するRSSのitemが時間順にソートされていない事もあり(日記・コミュニティー・...等グループ毎には時間順にソートされてる)、ちょっと微妙な感じになってました。

つまり、

  • 友達の日記1の更新

  • 友達の日記2の更新

  • 友達の日記3の更新

  • 友達の日記4の更新

  • 友達の日記5の更新

  • コミュニティー1の更新

  • コミュニティー2の更新

  • コミュニティー3の更新

  • コミュニティー4の更新

  • コミュニティー5の更新

とRSSデータのitemエントリが並んでいると、仮に 友達の日記1の更新 の更新時刻より コミュニティー1の更新 の更新時刻の方が新しくてもGoogleのページには6番目に表示されます。

今回はGoogleで使うことが目的なので、カテゴリ単位のソートではなくitem全体をソートするようにfeed.cgiを書き換えてみました。

‥‥Perlはよくわからんとです。 feed.cgi 0.31(全体sort版)

主な変更点は

  • itemをXML全体で時刻順にソート

  • WWW:Mixi(0.33)に合わせてコードを変更

  • titleを カテゴリ名[名前]タイトル で整形

です。まー用途が特殊なんで自分以外使う人はいないと思うけど、使う場合は自己責任でお願いします。