XML-RPC on POPFile

POPFileの0.22.0よりサポートされているはずのXML-RPCによるAPIですが、これを設定で有効にすると起動に失敗してしまいます。少し調べてみたところ、どうやらWindows版のインストーラーではScalar::Utilというモジュールがインストールされないことに原因があるようです。CPANからダウンロードしてlibフォルダに置いてみたらきちんと動作しました。

ドキュメントを読む限りではXML-RPC APIをメーラーから叩いて、微妙に使いづらいHTMLインターフェイスを利用せずに大概のことができるはずな感じじゃないかなぁとか。とりあえず鶴亀マクロは作る。

まぁとりあえず適当に書いた実験スクリプトは動いた。

#!/usr/local/bin/perl

use strict;
use XMLRPC::Lite;

my $proxy = "http://localhost:8081/RPC2";

my $sk = XMLRPC::Lite->proxy($proxy)
  ->call('POPFile/API.get_session_key', 'admin', '')
  ->result;

my $buckets = XMLRPC::Lite->proxy($proxy)
  ->call('POPFile/API.get_buckets', $sk)
  ->result;

print "$_\n" foreach (@$buckets);

XMLRPC::Lite->proxy($proxy)
  ->call('POPFile/API.release_session_key', $sk);

exit;

XML-RPC APIは上記のようにPOPFile自体の操作もできるのですが、任意のテキスト・ファイルを渡してスパムかどうかチェックできるので、なんか遊べそうな気がします。blaggなどと組み合わせてスパム・フィルタ付きのRSSアグリゲーターとかですかね。

追記@2004/10/07

あんまり色々できるわけではないことが理解できました。基本的にはPOPFileのデータベースを外部アプリケーションで利用してホニャララみたいな利用法をイメージされているような、そうでもないような。

RSSリーダーのスパム・フィルタとして実装するのは、ちょっとやってみた限りではなかなか面白いのですが、結局はそれ用にデータベースを鍛えなければならない(と思う)ので、んーむーという感じ。