「RSS 簡単一発作成 『RSS 生成 CGI』」から書き出されるRSS 2.0の日付情報が不正なので直すパッチ
スポンサードリンク
とあるRSSを、XML::Feedでパースしたら、うまくいきませんでした。そのRSSを
RSS Validator - feedAnalyzer RSSの構文チェック [feedanalyzer.com]
で調べてみたら、
"lastBuildDate" の日付の表記が間違っています。
"pubDate" "lastBuildDate" などではRFC 822の表記方法を使用します。
○正 > "Fri, 01 Jun 2005 03:00:00 +0900" (一例です 文字の間のスペースに注意してください)
○誤 > "Fri, 01 Mar 2009 03:00:00 +09:00"
とか出まして、RFC 822に従っていないので、XML::Feed(が使っているDateTime)が日付として認識できなかったようです。
ということで、これを生成しているのはなにかと思って調べてみたら、
<generator>http://www.futomi.com/library/rss/index.html?1.1.0</generator>
と書いていたので、該当するアドレスに飛んでみたら、RSS生成スクリプトでした。
RSS簡単一発作成『RSS 生成 CGI』 - futomi's CGI Cafe [www.futomi.com]
というわけで、シェアウェアだそうなので、インストールすることはとりあえずせずに、問題箇所を探してみました。
Filename: admin.cgi.patch
*** admin.cgi.orig 2006-07-25 11:57:00.000000000 +0900 --- admin.cgi 2009-03-10 11:46:26.000000000 +0900 *************** *** 876,882 **** if($CONF{'TIMEZONE_OFFSET'} =~ /^\-/) { $tz_sign = '-'; } ! my $tz = $tz_sign . sprintf("%02d", abs($CONF{'TIMEZONE_OFFSET'})) . ':00'; my $channel_pub_date = "$pubdate[6], $pubdate[3] $pubdate[4] $pubdate[5] $pubdate[2]:$pubdate[1]:$pubdate[0] ${tz}"; #image::title my $image_title = $CONF2{'IMAGE_TITLE'}; --- 876,882 ---- if($CONF{'TIMEZONE_OFFSET'} =~ /^\-/) { $tz_sign = '-'; } ! my $tz = $tz_sign . sprintf("%02d", abs($CONF{'TIMEZONE_OFFSET'})) . '00'; my $channel_pub_date = "$pubdate[6], $pubdate[3] $pubdate[4] $pubdate[5] $pubdate[2]:$pubdate[1]:$pubdate[0] ${tz}"; #image::title my $image_title = $CONF2{'IMAGE_TITLE'};
このスクリプトを使っている人は、上のパッチを当てるといいんじゃないでしょうか。
フィードアグリケータを作っている僕としてはこれどうすればいいんでしょうね。
スポンサードリンク
トラックバック(1)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2780
読んでるブログの数が増えに増えたので、RSSリーダーの整理も兼ねてココに一部を書いてみる ビジネス系 FPN TABLOGtokuriki.comワークスタイル・メモ あすなろBLOG Lifehacking.jp 歌田明弘の『地球村の事件簿』 Ad Innovator[モ]Modern Synt... 続きを読む
コメントする