はてなフォトライフ参照のはてな記法を含む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
コメントする