Feed情報の無いサイトの更新日時を得るプラグイン(2)
昨日書いた「Feed情報の無いサイトの更新日時を得るプラグイン」の別バージョン。
LWP::Simple ではなく LWP::UserAgent を使ってみるテスト。
コード
LWP::UserAgentを使用してみた。
プラグインコードは以下。昨日のと前半部分はほぼ同じ。使う場合は「urlmodifieddate.pl」などという名前をつけてプラグインディレクトリへ放り込む。
package MT::Plugin::URLModifiedDate;
use MT::Plugin;
use base qw(MT::Plugin);
use LWP::UserAgent;
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 $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->agent('Mozilla');
my $req = HTTP::Request->new('GET' => $url);
my $res = $ua->request($req);
if ($res->is_success) {
my $date = $res->header('Last-Modified');
return $date ." / ". $url;
}else{
my $na="N.A";
return $na ." / ". $url;
}
}
1;
使い方
<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は面倒なんで指定無くとも無理やり付けるようにした。テストだし
上のサンプルを実行したサンプル
- Wed, 02 Sep 2009 07:13:10 GMT / http://www.nissan.co.jp/index.html
- Mon, 28 Sep 2009 07:33:40 GMT / http://www.sixapart.jp/index.xml
そのほか
これGMT時間というやつ?変換は面倒なんでやってない。ページが無くて時間が取れなかった場合などはN.A.を返す。それと、yahooとgoogleは更新日時取れなかった。何でかは不明
- カテゴリ:215プラグイン関係
トラックバック(0)
このブログ記事を参照しているブログ一覧: Feed情報の無いサイトの更新日時を得るプラグイン(2)
このブログ記事に対するトラックバック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)
- 最小単位のプラグインを生成するサンプル(ファンクション、ブロック、モデファイア、コールバック)
コメント(2)
天野 (2009年9月29日 21:18)
はじめまして。天野と申します。
ぜんぜん必須ではないのですが、mt-config.cgiにHTTPProxyを設定しなければならないような環境では、「$ua->agent('Mozilla');」の下辺りに以下のように書いておくとより幸せになれるかも
しれません。
----------------------------------------------------
if (my $proxy = MT->config('HTTPProxy')) {
$ua->proxy('http', $proxy);
if (my $no_proxy = MT->config('HTTPNoProxy')) {
my @domains = split(/\s*,\s*/, $no_proxy);
$ua->no_proxy(@domains) if @domains;
}
}
----------------------------------------------------
yoshi (2009年9月30日 00:40)
天野さん、こんばんは。
# 初めましてですが、前から天野さんのことは知ってました。
有用なアドバイスありがとうございます。
ご教示いただいた内容は、あとでよく読んでみます。
コメントする