perl + mySQL
PerlでDBに接続することが出来れば、かなり遊べる事が分かりました。
このMovableTypeはDBにMySQLを入れているので、Perl + MySQL ですね。
DBIを使ってプログラムを簡単に作れるじゃないですか!!
追記欄に遊びで作ったプログラム(抜粋)を入れました。
例では直近1日に投稿された記事を抽出して~するといった感じ。
何でも出来そうだね。
楽しみ~。
#!/usr/bin/perl
#PerlModuleを読み込む
use DBI;
use Encode;
#BLOG/DB定義
$DB_USER = 'blog_admin';
$DB_PASS = 'blog_pass';
$DB_NAME = 'abc_blog';
$DB_HOST = 'localhost';
$BLOG_ID = 1;
#今日と昨日の日付を計算
my($sec, $min, $hour, $day, $mon, $year) = localtime(time);
$today = sprintf("%04s-%02s-%02s", $year + 1900, $mon + 1, $day);
my($sec, $min, $hour, $day, $mon, $year) = localtime(time-86400);
$yesterday = sprintf("%04s-%02s-%02s", $year + 1900, $mon + 1, $day);
$starttime = $yesterday;
$endtime = $today;
#DB接続
$db = DBI->connect('DBI:mysql:'.$DB_NAME.':'.$DB_HOST, $DB_USER, $DB_PASS);
$sth = $db->prepare("SELECT entry_created_on, entry_title, entry_text FROM mt_entry where entry_blog_id=$BLOG_ID and entry_created_on > '''$starttime''' and entry_created_on <= '''$endtime'''" );
$sth->execute;
$num_rows = $sth->rows;
#記事があったら処理をする
if ($num_rows){
#$MailBody = '-----------------------------------------'."\n";
for ($i=0; $i<$num_rows; $i++) {
@a = $sth->fetchrow_array;
#日付部
$entry_created_on=$a[0];
$entry_created_on=encode('euc-jp', decode('sjis', $entry_created_on));
#タイトル部
$entry_title=$a[1];
$entry_title=encode('euc-jp', decode('sjis', $entry_title));
#本文部
$entry_text=$a[2];
$entry_text=encode('euc-jp', decode('sjis', $entry_text));
#いじる処理を書く
}
}else{
#記事がなかったときの処理をいれる
}
$sth->finish;
$db->disconnect;
exit;