Under the Bridge

a Picture of the Late Him

Feed情報の無いサイトの更新日時を得るプラグイン

2009年9月28日 19:14 | Writer: yoshi | 記事本文 | コメント(0) | トラックバック(0)

自分が更新日時を知りたいサイトの中には、Feed情報を吐いていないサイトが非常に多い(建築土木系)。そして、私はそれらのサイトの更新日時が知りたいが、Feed情報を吐いていないのでRSSリーダーなどを使えない...そこで、MT再構築を行うときに他所のサイトの更新日時を出力できないかを実験してみた。

コード

LWP::Simpleを使用してみた。

プラグインコードは以下。使う場合は「urlmodifieddate.pl」などという名前をつけてプラグインディレクトリへ放り込む。

package MT::Plugin::URLModifiedDate;
use MT::Plugin;
use base qw(MT::Plugin);
use LWP::Simple;
our $VERSION = '0.1';


my $plugin = new MT::Plugin::URLModifiedDate({
    id => 'URLModifiedDate',
    key => 'urlmodified_date',
    name => 'URLModifiedDate',
    version => $VERSION,
    description => '<MT_TRANS phrase=\'The URL Modified Date Get\'>',
    author_name => 'apstar',
    author_link => 'http://www.mtde.info/',
});
MT->add_plugin($plugin);

sub init_registry
{
    my $plugin = shift;
    $plugin->registry({
        tags => {
            function => {
                'URLModifiedDate' => \&_hdlr_urlmodifieddate,
            },
        },
    });
    
}

sub _hdlr_urlmodifieddate {
   my ($ctx, $args) = @_;
   my $url = $args->{url};
   my $addurl = $args->{addurl};

   my $modified_time = (head($url))[2];
   my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($modified_time);
   $yyyymmddJ = sprintf("%04d年%02d月%02d日", $year + 1900, $mon +1, $mday);
   if ('' eq $addurl){
      return $yyyymmddJ;
   } else {
      return $url ." ". $yyyymmddJ;
   }
}

1;

使い方

<ul>
<li><MTURLModifiedDate url="http://www.nissan.co.jp/index.html" addurl="1"></li>
<li><MTURLModifiedDate url="http://www.sixapart.jp/index.xml" addurl="1"></li>
</ul>

<ul>
<li><MTURLModifiedDate url="http://www.nissan.co.jp/index.html"></li>
<li><MTURLModifiedDate url="http://www.sixapart.jp/index.xml"></li>
</ul>

MTURLModifiedDate というファンクションタグが使えるようになる。urlで更新日時を知りたいファイルを指定する。index.htmlとかいうファイル名まで含めること。フィード情報を対象にするならindex.xmlなどを指定してもいい。addurlを何かしら(何でもいい)指定すると、そのURLを併記する。

上のサンプルを実行したサンプル

  • http://www.nissan.co.jp/index.html 2009年09月02日
  • http://www.sixapart.jp/index.xml 2009年09月28日
  • 2009年09月02日
  • 2009年09月28日

そのほか

LWP::Simpleでは更新日時を取れないサイトも存在する。LWP::UserAgentを使用すればいいような気がするが、時間が無いのでそこまでやってない。

トラックバック(0)

このブログ記事を参照しているブログ一覧: Feed情報の無いサイトの更新日時を得るプラグイン

このブログ記事に対するトラックバックURL:

コメントする






Categories
Entries
Feed
スポンサードリンク

parts

フィードメーター - Under the Bridge

あわせて読みたい

なかのひと

2008 yoshi(apstar)