« 「葉月ゆら」が素晴らしすぎる件について | メイン | CHEEBOWのしおり(2006-04-07) »

2006年4月 7日

MT BanASCII 3.2 MT::I18N::encode_text対応版

最近、Movable Typeの標準スパム対策プラグイン「SpamLookup」をすり抜けてくるコメントやトラックバックが多くて嫌になる。
それも、短い英単語数語の内容だったりして、ますますウザい(笑)。

というわけで

MT BanASCII 3.2 対応: blog.bulknews.net

miyagawaさんの、このプラグインを試してみることに。
でも、これ、Perl5.8以上で動作ってあるので、このブログが設置してあるサーバでは使えない(Perl5.6だから)。
で、ソース見てたら、どうもEncodeモジュールを使っているところで引っかかっているっぽい。

なので、Movable TypeのモジュールMT::I18Nを使うように修正してみた。

--- mt-ban-ascii.pl.org 2006-04-07 17:27:23.085937500 +0900
+++ mt-ban-ascii.pl 2006-04-07 17:17:00.000000000 +0900
@@ -37,9 +37,9 @@
 
 sub handler {
     my($plugin, $obj) = @_;
-    require Encode;
+    require MT::I18N;
     my $charset = MT::ConfigMgr->instance->PublishCharset;
-    my $text = Encode::decode($charset, $obj->all_text);
+    my $text = MT::I18N::encode_text($obj->all_text, $charset);
     if ($text =~ /^[\x00-\xff]+$/) {
         if ($Method eq 'junk') {
             return (-1, "ASCII or Latin-1 comment");

いちお、これで動いてるみたい。
試してみたい方は、こちらから、ダウンロードできます。

mt-ban-ascii.pl(中止しました……)

追記:
MTBanASCII: コメントSPAM対策を MT3 に移植: blog.bulknews.netのコメントを見て気付きました……。
これじゃ駄目です。/^[\x00-\xff]+$/ だと、全部Banされちゃいますっ!
すでにインストールしちゃった人は、外してくださいませ……。ごめんなさい……。

投稿者 CHEEBOW : 2006年4月 7日 17:18 このエントリーを含むはてなブックマーク

[ Movable Type, Perl ]
【お知らせ】音楽に関することはこちらのブログで書いています。くじら音楽部::BLOG