MovableTypeのトラックバックのプラグイン

MovableTypeトラックバックプラグインを書いているのだけどうまくいかない。

MT->add_callback('TBPingFilter', 1, $plugin, \&filter_func);
MT->add_callback('TBPingThrottleFilter', 1, $plugin, \&throttle_func);

てな感じでコールバック関数をセットすると,throttle_func は呼ばれるのだけど filter_func が呼ばれないことがある(呼ばれることもある)。謎だ。もしかして throttle_func が終了して filter_func が呼ばれるまでの間に次のトラックバックが来たりすると filter_func はキャンセルされてしまうのだろうか。そんな馬鹿な話はないよなあ。


【追記】実はMTのブログには"1時間あたりの最大TB数(OneHourMaxPings)""1日あたりの最大TB数(OneDayMaxPings)"が設定されていることが判明。しかも初期値はそれぞれ10と50と少ない。大量のスパムTBを受けたため,このリミットを越えてしまっていたようだ。社内サーバなら動作するが公開サーバではうまくいかなかった理由もこれで分かった。しかしこんな重要なパラメータなのにウェブで設定することはできず,mt-config.cgiに記述する必要がある。そんなパラメータがあるなんてソース読むまで分かりませんでした。スパムTBを含めた件数で判断するのがよくないな。せっかくスパムを判定して非公開にする機能をもっているのに。公開されているTBの件数だけを対象にすべきでしょう。明日パッチを当てよう。

参考資料(変換でしくじったらしく書式が乱れていてカコワルイ)