■2005-01-21
* [Perl] Class::Wiki
Class::XMLというClass::DBIライクにXMLの読み書きを行うモジュールがあるので、見習ってClass::Wikiをつくろうと思い立ちました。その手始めにDBD::Wikiをこさえることに。DBD::FileやDBD::iPod、DBD::Googleなど参考にちまちまとやってます。問題はXML-RPC for Wikiを利用しているのですが、これが実装されているWikiがほとんど存在しないのと(FreeStyleWikiは拙作のCGIが)、XML-RPCでやりとりしたくないなあ……というところ。いつものように役に立たないモジュールになるはず。
あー、この一週間search.cpan.orgは"Bad Gateway The proxy server received an invalid response from an upstream server."ってエラーが出てなかなか繋がらない。
* [Perl] DBD::Wiki
少しでけたー。
use DBI; my $url = 'http://www.jspwiki.org/RPC2/'; my $dbh = DBI->connect( "dbi:Wiki:drv_if=xmlrpc;url=$url" ); my $sth = $dbh->prepare(q{ SELECT * FROM wiki WHERE name LIKE 'S%' LIMIT 10 }); $sth->execute(); while( my $row = $sth->fetchrow_arrayref() ){ print join(', ',@$row),"\n"; # 実はnameカラムのみ } # テーブルは wiki, pages, links の3つ
てな感じ。
SELECT linkpage, href FROM links JOIN wiki ON wiki.name = links.name WHERE name = 'Menu'
ぐらいの構文ならなんとか(WHERE句のnameが曖昧だけど)。データの取得をXML-RPC for Wikiで実装しているので、実際にできることは少ないです。 続く。
どんぞこ日誌(2005-01-21)Class::XMLというClass::DB...