ホーム » コンピュータ » Linux » movabletype 移行に伴い、記事サマリ収集プログラムの修正

サーバ⚙

アーカイブ

カテゴリー

movabletype 移行に伴い、記事サマリ収集プログラムの修正

movabletype に変更して、自宅サイトのトップの記事サマリが実態にあわなくなった。

自動生成されている Atom 形式の RSS フィードを、マージするプログラムを作り、
その処理に、記事サマリを HTML 化したものを出力するように変更する。
#!/usr/bin/perl
use Jcode ;
use XML::TreePP ;
use XML::FeedPP ;
use POSIX qw( strftime ) ;
# 新規に生成するRSSフィード
$rss_atom = "/var/www/system/atom.xml" ;
# RSSフィードをHTML形式でも作成(トップページ用)
$rss_html = "/var/www/system/rss.html" ;
# RSSフィードを探すユーザ一覧
@local_rss_uid = ( "ユーザ名" ) ;
my $feed = XML::FeedPP::Atom->new();
$feed->merge( "/var/www/system/rss.xml" ) ;
# 自宅 MovableType の RSS Feed をマージ
foreach $uid ( @local_rss_uid ) {
  if ( -f "/home/$uid/public_html/mt/atom.xml" ) {
    $feed->merge( "/home/$uid/public_html/mt/atom.xml" ) ;
  }
}
# RSS Feed に全体情報を設定
$feed->title( Jcode->new( "tsaitoh.net全体のRSSフィード" )->utf8 ) ;
$feed->pubDate( time() ) ;
# フィード一覧をHTMLで生成
open( HTML , ">$rss_html" ) ;
print HTML "<ul>\n" ;
foreach my $item ( sort( $feed->get_item() ) ) {
  if ( $item->title() ne "" ) {
    my $date = strftime( "%m/%d" ,
                         localtime( XML::FeedPP::Util::get_epoch( $item->pubDate() ) ) ) ;
    print HTML "<li>$date <a href=\"".$item->link()."\" target=\"_top\">"
      .Jcode->new( do htmlspecialchars( $item->title() ) )->euc ."</a></li>\n" ;
  }
}
print HTML "</ul>\n" ;
close( HTML ) ;
$feed->to_file( $rss_atom ) ;

検索 🔎

  My Google     Yahoo

便利サイト