Feedburner.jpを使い始めたので、StatWatchも.jpに対応させてみる。
StatWatch自体も1.2にバージョンがあがっていたので、これをアップデートしてみる。MTプラグインなので、そのまま上書き。見た目がちょっと修正されてる模様。1.1では"Top Pages This Week"に空欄が表示されたりしてたけど、1.2ではそこらはfixされたっぽい。
見た目はいいけど、フィードレポートの"Subscribers"が表示されてないのはなんでだ?.comから.jpにかえたからっぽいし、.jp用のAPIに対応させないといけないのでソースを見てみる。
表示制御は、lib/StatWatch.pmのgetFeedStatsメソッドから返ってくる"has_feed"っていうフラグが鍵らしい。で、has_feedを1(ON)にするにはBLOGトップのHTMLヘッダからlink要素を探して、そのhref属性値の先頭28文字が"http://feed.feedburner.com/"とイコールでないといけないらしい。なので、先頭27文字が"http://feeds.feedburner.jp/"とイコールになったらという条件に変更。それで、その下の方にawarenessAPIのURLが書かれていて、それも.com用なので.jpに変更。とりあえず、これだけ修正して再度StatWatchのレポート画面にアクセス。無事、表示される事を確認。StatWatchはC.C.らしいので、手元のソースを修正するだけなら問題はないよね…?
ここで、修正とかバージョンアップとかする前に確認して疑問だったのが、.jpにあるawarenessAPIのドキュメントが.comのものを和訳しただけだった事。.jpにして出力される事が確認できたから、多分.jpに置き換えればいいんだろうけど、ちょっと混乱。
2006/02/04 追記
オリジナル(v1.2)との"diff -u"をとってみた。
--- StatWatch.pm.orig 2005-11-09 06:27:54.000000000 +0900
+++ StatWatch.pm 2006-02-04 01:20:32.000000000 +0900
@@ -513,7 +513,7 @@
for my $link (@{ $blog_response->headers->{link} }) {
my @link_bits = split(/;/,$link);
chop(my $url = substr($link_bits[0],1));
- if (substr($url,0,28) eq "http://feeds.feedburner.com/") {
+ if (substr($url,0,27) eq "http://feeds.feedburner.jp/") {
$feed_url = $url;
last;
}
@@ -522,7 +522,7 @@
my ($feed_subscribers,$feed_subscribers_bg,$has_feed,$feed_average,$feed_permit);
if ($feed_url) {
my $feed_dates = usableDate("feedburner");
- my $feed_average_request = HTTP::Request->new(GET => "http://api.feedburner.com/awareness/1.0/GetFeedData?uri=$feed_url&dates=$feed_dates");
+ my $feed_average_request = HTTP::Request->new(GET => "http://api.feedburner.jp/awareness/1.0/GetFeedData?uri=$feed_url&dates=$feed_dates");
my $feed_average_response = $user_agent->request($feed_average_request);
use XML::Simple;