Wikiのページを自動生成-perl-
ここではperlを使ってpuki wikiのページを自動で生成する方法を簡単に解説します。
pukiwikiの新規ページ作成時、digest値は固定文字列が入るようです。念のため、自分の値を確認するには、ページの新規作成→編集ページに遷移したあと、HTMLソースのhidden digestの値を確認してください。
あとはこのperlソースを使って、RSS、メールを自動取得、cronにしかけたりして、wikiを自動的に生成することができます。
- 1.PukiWiki 1.4.7(UTF-8)をインストールする。バージョンはどんなものでもよいかと思いますが、筆者はこのバージョンを使っています。
- 2.perlで必要なモジュールがあるかどうか確認してください。筆者はhttp postにLWPを使用しています。
- 3.perlソース(UTF-8)でwikiに記事、ページ名をpostするのはこのようなソースになります。関数にしたので、便利かと思います。
sub postWiki{
#引数1番目 記事内容 ここはwikiフォーマットでpostしてください。
#URLエンコードはLWPがやってくれてしまうので、必要なし。
$msg = $_[0];
#引数2番目 ページ名 ここも実際のwikiフォーマットでpostしてください。
$pageName = $_[1];
$ua = LWP::UserAgent->new;
$req = POST 'http://past-seven.com/wiki/',#自分の環境に合わせる。
[ encode_hint => 'ぷ', #pukiwikiデフォルト
cmd => 'edit', #pukiwikiデフォルト
page => "$pageName",
digest => 'd41d8cd98f00b204e9800998ecf8427e', #pukiwikiデフォルト
msg => "$msg",
notimestamp => 'true', #pukiwikiデフォルト
write => 'ページの更新'];#pukiwikiデフォルト
$user = ""; #必要があればベーシック認証ID
$pwd = ""; #必要があればベーシック認証PW。
$domain="past-seven.com"; #自分の環境に合わせる。
$port=80;
$realm="PukiWikiAuth"; #pukiwikiデフォルト
$ua->credentials("$domain:$port",$realm,$user,$pwd);
print $ua->request($req);
}