複数のフィード(RSS、Atomなど)をまとめるCGI

| | コメント(0) | このエントリーを含むはてなブックマーク | この記事をクリップ!

必要に駆られて作ってみました・・・。モジュールの使いかたがよくわかっていない人が作っているので、そのつもりでお使いください。

使いかた

はじめに「[Perl] XML::FeedPP - RSS・RDF・Atomフィードの解析・生成・変換・結合」で、FeedPP.pmとTreePP.pmを手に入れて、以下のCGIを置くフォルダの下に「XML」というフォルダを作り、そこにおいてください。

下記ソースを用途と環境に合わせて編集し、サーバーにアップロードしてパーミッションを適切に設定し、WWWブラウザから実行してください。「出力完了」と表示されたら、CGIを置いたフォルダに「feed.rdf」というファイルができています。pingの送信先として当CGIを指定すれば、ブログの更新すると自動的にフィードも更新されるようになります。

ソース

[Perl] XML::FeedPP - RSS・RDF・Atomフィードの解析・生成・変換・結合」のサンプルほぼそのまんまですが。

#!/usr/bin/perl

use XML::TreePP;
use XML::FeedPP;

my $feed = XML::FeedPP::RDF->new();
$feed->merge( "http://test.audiofan.net/test.rdf" );
$feed->merge( "http://test.audiofan.net/test2.xml" );
$feed->merge( "http://test.audiofan.net/index.xml" );
$feed->merge( "http://test.audiofan.net/index2.xml" );
my $now = time();
$feed->sort_item();
$feed->title( "audiofan.net integrated feed" );
$feed->description( "audiofan.net integrated feed" );
$feed->link( "http://audiofan.net/" );
$feed->pubDate( $now );
my $atom = $feed->to_file( "feed.rdf", "UTF-8" );

print "Content-type: text/plain\n\n";
print "出力完了\n";

ソースの説明

$feed->merge( "http://audiofan.net/index.xml" );

フィードのURLを入れてください。上記ソースでは4つありますが、2つでも3つでも5つでもそれ以上でも問題ありません。

$feed->description( "audiofan.net integrated feed" );

まとめたフィードに付ける説明文です。

$feed->title( "audiofan.net integrated feed" );

まとめたフィードに付けるタイトルです。

$feed->link( "http://audiofan.net/" );

まとめたフィードに記載するトップページのURLです。

my $atom = $feed->to_file( "feed.rdf", "UTF-8" );

まとめたフィードのファイル名とエンコードです。普通はそのままで良いです。

コメントする

最近のブログ記事

Powered by Movable Type 4.1