MT BanASCII 3.2 MT::I18N::encode_text対応版 再び
[あらすじ]
ヒビノアワ: MT BanASCII 3.2 MT::I18N::encode_text対応版でプラグインを変更して、しめしめこれで1バイト文字のコメントとトラックバックは拒否できるぞ、と、ほくそえむCHEEBOW。しかし、それはあまりにも浅はかであった! そのプラグインは1バイトはもとより、日本語のコメント・トラックバックすら飲み込んでしまう、コメント・トラックバックホイホイであったのだ!
と言うわけでですよ。
また、修正してみました。
--- mt-ban-ascii.pl.org 2006-04-07 17:27:23.085937500 +0900
+++ mt-ban-ascii.pl 2006-04-10 12:40:39.146657000 +0900
@@ -37,10 +37,10 @@
sub handler {
my($plugin, $obj) = @_;
- require Encode;
+ require MT::I18N;
my $charset = MT::ConfigMgr->instance->PublishCharset;
- my $text = Encode::decode($charset, $obj->all_text);
- if ($text =~ /^[\x00-\xff]+$/) {
+ my $text = MT::I18N::encode_text($obj->all_text, $charset, 'euc-jp');
+ if ($text =~ /^[\x00-\x7f]+$/) {
if ($Method eq 'junk') {
return (-1, "ASCII or Latin-1 comment");
} elsif ($Method eq 'moderate') {
これだと、Latin-1 であるかどうかは判断できなくなっちゃうので、ログメッセージやプラグインの説明がおかしくなっちゃうんだけど……。
とりあえず、BanASCIIにはなるので、よいかなぁ、と。
ダウンロードはこちら。
mt-ban-ascii.pl
追記:
でも、ここまでやっちゃったら、そもそも、
--- mt-ban-ascii.pl.org 2006-04-07 17:27:23.085937500 +0900
+++ mt-ban-ascii.pl 2006-04-10 12:40:39.146657000 +0900
@@ -37,10 +37,9 @@
sub handler {
my($plugin, $obj) = @_;
- require Encode;
my $charset = MT::ConfigMgr->instance->PublishCharset;
- my $text = Encode::decode($charset, $obj->all_text);
- if ($text =~ /^[\x00-\xff]+$/) {
+ my $text = $obj->all_text;
+ if ($text =~ /^[\x00-\x7f]+$/) {
if ($Method eq 'junk') {
return (-1, "ASCII or Latin-1 comment");
} elsif ($Method eq 'moderate') {
これで良かったりはしませんか!
全然「MT::I18N::encode_text対応」でもなんでもないじゃん……orz
投稿者 CHEEBOW : 2006年4月10日 19:03
Tweet
[ Movable Type ]
【お知らせ】音楽に関することはこちらのブログで書いています。くじら音楽部::BLOG
