RSSのアドレス入れたらすぐにparseして使えるかどうか判断するPerlのコード
スポンサードリンク
M.C.P.C.: RSSのアドレス入れたらすぐにparseして使えるかどうか判断しておくべき
で書いていたのにどうやってFeedが正しいかどうか判断するかっていうのを書くの忘れていました。
# feed が正しいかテスト use URI; use XML::Feed; my $feedurl = 'http://feeds.feedburner.com/MCPC'; my $err; my $feed = XML::Feed->parse( URI->new( $feedurl ) ) # feed Parserで解析 or $err = XML::Feed->errstr; print "$err\n" if $err;
でいいんじゃないかなー。
んで、CGI::Application::Plugin::ValidateRM用のバリデータとしてはこんな感じ。
# ValidateRM用feedバリデータ use Encode; use utf8; use URI; use XML::Feed; sub _varidate_feed { return { optional => [qw( feed )], filters => [qw( trim )], constraints => { feed => [ { name => 'reserved_feed', constraint => sub { # feed が正しいかテスト my $feedurl = shift; my $err; my $feed = XML::Feed->parse( URI->new( $feedurl ) ) # feed Parserで解析 or $err = XML::Feed->errstr; return !$err; }, }, ], }, msgs => { invalid => encode('utf8', '入力が不正です'), missing => encode('utf8', '入力がありません'), any_errors => 'some_errors', prefix => 'err_', constraints => { 'reserved_feed' => encode('utf8', 'RSSフィードではないようです。'), }, }, }; }
いつまでCGI::Application使うんだ、ていう話はほっといてください。
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3682
コメントする