M.C.P.C.

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


| トップページ |

2006年4月16日 00:01

RSSを記事の日付順にソートするPerlスクリプト

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

昔作った RSS 自動生成は、フロー型掲示板の出力をそのまま順番に記事として取り扱うので、RSS リーダの方でソート表示しない場合、表示順が明らかにおかしくなります。というわけで、対策するにはどうするかっていう話です。

ファイル名は適宜つけてください。やっぱり CGI としても動くようにしました。

#!/usr/bin/perl -w
 
use strict;
use LWP::Simple;
use XML::RSS;
#use XML::RSS::Liberal;
use utf8;
use Data::Dumper;
 
#my $url = $ENV{QUERY_STRING};
my $url = 'http://dtpwiki.jp/rss/indesign.xml';
my $data_from_web = get($url);
 
my $rss = XML::RSS->new;
#my $rss = XML::RSS::Liberal->new;
 
$rss->parse($data_from_web);
 
#print Dumper($rss);
#exit;
 
@{$rss->{'items'}} = 
    sort { $b->{dc}->{date} cmp 
           $a->{dc}->{date} } @{$rss->{'items'}};
#splice (@{$rss->{'items'}}, 10);
 
if ($ENV{GATEWAY_INTERFACE}) {
    require CGI;
    print CGI::header('text/xml; charset=utf-8');
}
print $rss->as_string();
#$rss->save('rss.xml');

ソートキーを変えたいときは、sort のあたりをゴリゴリっていじってください。いじるときは、Data::Dumper で、読み込まれた RSS の解析結果を表示させるといいですよ。

あと、昨日のエントリの、RSS の件数を制限するやつをつけてもいいですね。

~~~

僕は、自分のサイトで生成している HTML→RSS スクリプトで使っているので、メモ代わりとして書いておきます。

投稿 大野 義貴 [RSS] | |

トラックバック(1)

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

livedoor Reader最高だぜ!ということでlivedoor Readerで色々な掲示板の内容を表示できればいいね!ってなわけでRSSを作ることに。 ここに頼んでも良かったのですが、あんまり頼んでも(いろいろな意味で)まずいので、自分で作ってみることにしました(今日は集金日でした... 続きを読む

コメントする