名前¶
Net::TrackBack - TrackBack 1xのコア機能のモジュール化された実装。
概要¶
<!-- ping受信のサンプル -->
use Net::TrackBack;
use CGI qw( :cgi-lib :standard );
my $q = new CGI;
my $p = new Net::TrackBack;
my $foo = $q->Vars;
$p->receive_ping($p->get_tb_id($q), $foo, \&dump2warn );
sub dump2warn {
my $data=shift;
foreach (keys %{ $data }) { warn "$_ " . $data->{$_} }
}
<!-- pingを検出するサンプル -->
use Net::TrackBack;
my $url = 'http://www.mplode.com/tima/archives/000190.html';
$p=new Net::TrackBack;
foreach ($p->discover($url)) { print "$_\n"; }
if ($p->is_success) { print "A SUCCESS!\n"; }
elsif ($p->is_error) { print "A FAILURE.\n". $p->message ."\n"; }
<!-- pingを送信するサンプル -->
use Net::TrackBack;
$data{ping_url}='http://your/test/trackback.cgi/2ping';
$data{title}='foo title!';
$data{url}='http://www.foo.com/tima/';
$data{excerpt}='foo is the word.';
$data{blog_name}='Net::TrackBack';
$p=new Net::TrackBack;
print qq(Send Ping: $data{url})."\n";
$p->send_ping(\%data);
if ($p->is_success) { print "SUCCESS!\n" . $p->message ."\n"; }
説明¶
これはTrackBackの標準実装と仕様から見つけられるTrackBackの機能を、 実に手早く「オブジェクト指向モジュール化」したものです。 標準実装にある表示と管理の機能については、CGI.pmの信頼できる実装があるのに 付け加えることはせず、省きました。私はTrackBackの天才達をクレジットに入れていません。 このモジュールコードのほんの一部だけがスタンドアロンのTrackBackの実装から派生しています。 このモジュールを開発した私の動機は、TrackBack機能の試験と実装をもうちょっと容易にすることです。
私は自分で適正な量の試験をこのモジュールに対して行いましたが、 今のところこのモジュールはα版とみなすべきでしょう。言い換えれば、このモジュールが 一旦ちょっとの間流通したときに現れるフィードバックや用例に基づいて現状の インターフェースは変わるかもしれないということです。
フィードバックや示唆をいただければ、非常に感謝します。まだすべきことは多く残っています。 このモジュールは完成から程遠い状態です。検討事項の要点についてはTO DOセクションをご覧下さい。
このモジュールはLWPパッケージを必要とします。
メソッド¶
以下のメソッドを利用できます:
new
Net::TrackBackのコンストラクタ。Net::TrackBackのオブジェクトのリファレンスを返します。
$p->receive_ping($tb_id,%data_in,\&code_ref)
TrackBack ID($tb_idで識別されます)として受領したデータのハッシュを処理し、 いくつかの標準化処理を経た後でcode_refで指定された次の処理 -- ディスクへの保存や電子メール送信等々 -- のためのルーチンにデータを渡します。
$p->send_ping(%data_out)
trackBackの仕様で定められた要素のハッシュをとり、ping_url要素で指定されたリソースにping(送信)します。
$p->discover($url)
$urlで指定されたWebページを取得し、見つかった全てのTrackBack pingを抽出するルーチンです。 このpingは単純な配列で返されます。
$p->is_success()
最後のオペレーションが成功したか否かを示すブーリーン値(1か0)を返します。
$p->is_error()
最後のオペレーションが失敗したか否かを示すブーリーン値(1か0)を返します。
$p->message()
最後のオペレーションについて、人が読むことのできるメッセージを返します。
$p->get_tb_id($CGIobj)
CGI.pmと一緒に使うためのユーティリティーメソッドです。 CGI.pmのリファレンスを取り、TrackBack ping IDを受け取ったリクエストから抽出します。
参考資料¶
LWP, http://www.movabletype.org/docs/mttrackback.html
TO DOと問題点¶
discover
はおそらく、ハッシュリファレンスの配列を返します。receive_ping
は名前空間を正確に扱いません。標準的なプレフィックスに忠実であれば問題ないでしょう。<dc:subject>などのDublin Core要素の拡張はサポートしてません。
TrackBackスレッディングも将来実装するかも?
ライセンス¶
The software is released under the Artistic License. The terms of the Artistic License are described at http://www.perl.com/language/misc/Artistic.html.
作者&コピーライト¶
Except where otherwise noted, Net::TrackBack is Copyright 2003, Timothy Appnel, [email protected]. All rights reserved.