Feed情報の無いサイトの更新日時を得るプラグイン
自分が更新日時を知りたいサイトの中には、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を使用すればいいような気がするが、時間が無いのでそこまでやってない。
- カテゴリ:215プラグイン関係
トラックバック(0)
このブログ記事を参照しているブログ一覧: Feed情報の無いサイトの更新日時を得るプラグイン
このブログ記事に対するトラックバックURL:
- Categories
- Entries
-
- Feed情報の無いサイトの更新日時を得るプラグイン(2)
- Feed情報の無いサイトの更新日時を得るプラグイン
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(Ver0.6)
- EXIF情報を取得するプラグインの進行状況
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(Ver0.5)
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(Ver0.4)
- memo:perlでプラグイン Image::ExifとImage::Info
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(Ver0.3)
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(Ver0.2)
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(GPS Ready)
- MT4:エントリのURLをQRコードで自動生成する
- MT4.2:QRコード画像を生成するプラグイン(改)
- 嵌りメモ(perlのxampp環境でのファイル吐き出し実験)
- MT4.2:QRコード画像を生成するプラグイン
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(失敗)
- 管理画面を拡張する(メニューとメソッド追加)
- MT4.1:追加したファンクションタグのみへモデファイア追加
- MT4.1:エントリの既存DBへアクセスしてデータ取得
- MT4.1:MTの計算機能を拡張するプラグイン(CalcExp)開発の話
- MT4.1:MTの計算機能を拡張するプラグイン(CalcExp)配布
- MT4.1:営業日(休日)をイッパツで表現するカレンダープラグイン(改)
- MT4.1:プラグイン作成におけるDBへのフィールド追加について(プラグイン設定編)
- MT4.1:プラグイン作成におけるDBへのフィールド追加について(ブログ毎編)
- MT4.1:プラグイン作成におけるDBへのフィールド追加について(カテゴリ編)
- MT4.1:プラグイン作成におけるDBへのフィールド追加について(エントリ編)
- MT4.1:カテゴリの並べ替え(オリジナルプラグイン+ハッシュ変数)
- サンプルプラグインを手入力した(AddField)
- MT4.1:営業日(休日)をイッパツで表現するカレンダープラグイン
- サンプルプラグインを手入力した(RandomEntry)
- 最小単位のプラグインを生成するサンプル(ファンクション、ブロック、モデファイア、コールバック)
コメントする