Net-TrackBack-0.21 > Net::TrackBack

名前

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, tima@mplode.com. All rights reserved.