M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2009年3月10日 11:55

「RSS 簡単一発作成 『RSS 生成 CGI』」から書き出されるRSS 2.0の日付情報が不正なので直すパッチ

このエントリーをはてなブックマークに追加 mixiチェック

とある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'};

このスクリプトを使っている人は、上のパッチを当てるといいんじゃないでしょうか。

フィードアグリケータを作っている僕としてはこれどうすればいいんでしょうね。

投稿 大野 義貴 [RSS] | |

トラックバック(1)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2780

読んでるブログの数が増えに増えたので、RSSリーダーの整理も兼ねてココに一部を書いてみる ビジネス系 FPN TABLOGtokuriki.comワークスタイル・メモ あすなろBLOG Lifehacking.jp 歌田明弘の『地球村の事件簿』 Ad Innovator[モ]Modern Synt... 続きを読む

コメントする