はてなフォトライフ参照のはてな記法を含むRSSをhtmlのimg要素に書き換えるPerl CGI
スポンサードリンク
はてなダイアリーの RSS は、はてなフォトライフ参照のはてな記法がそのまま description 要素に配信されてくるので、html の img 要素に書き換えて、content:encoded 要素に格納します。
RSS リーダで見るとき写真が見られない RSS をこれで変換します。
http://example.com/○○○.cgi?url=http://d.hatena.ne.jp/△△△/rss
こんな感じで RSS リーダにぶっ込みます。mod_perl 環境では動かないと思う(header メソッド当たり)。
#!/usr/bin/perl
use strict;
use warnings;
use LWP::Simple;
use XML::RSS;
use CGI;
my $fhatena='http://f.hatena.ne.jp/images/fotolife/t';
my $q = CGI->new;
my $url = $q->param('url');
$url =~ m|^http://d.hatena.ne.jp/[\w\d]+?/rss$| or die('no d.hatena!');
my $data_from_web = get($url);
my $rss = XML::RSS->new;
$rss->add_module(
uri => 'http://purl.org/rss/1.0/modules/content/',
prefix => 'content',
);
$rss->parse($data_from_web);
my $item_list = $rss->{'items'};
foreach my $item ( @{$item_list} ) {
$_ = $item->{'description'};
s|f:id:(.+?):(\d{8}?)(\d{6}?)j:image|<p><img src="$fhatena/$1/$2/$2$3.jpg" /></p>|g;
$item->{'content'}->{'encoded'} = "<![CDATA[\n".$_."\n]]>";
}
print $q->header('Application/xml');
print $rss->as_string;
はてなフォトライフって、jpeg 以外もアップできると思うけど見ての通り対応していません。jpeg 以外は見えなくてもいいですよね?
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/1700





![: Amazon.co.jp: プラスティック・メモリーズ 1【完全生産限定版】(イベントチケット優先販売申込券付) [Blu-ray]](/lists/_9/B00VWX66E8.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 2【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX66K2.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 3【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX6MV0.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 4【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX66IO.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 5【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX6Y0E.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 6【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX69D6.jpg)


コメントする