Oct 27, 2005

MT SpamLookup Best Practicesに追加

MT SpamLookup Best Practices: blog.bulknews.net

ちと思ったことがあります。SpamLookupのKeyword Filterの「未公開キーワード」ないし「迷惑キーワード」に以下のように追加しさえすれば、MT BanASCIIはイラネエンジャアアルメエカ、と。

/^[\x00-\xFF]+$/

そう思って実際試してみると、有効に機能しない模様。なるほど、BanASCIIではEncode::decodeしてから/^[\x00-\xFF]+$/と比較しています。decodeしていない(EUC_JP/UTF-8の)文字列との比較なら/^[\x00-\x7F]+$/と比較する必要がありますが、それだとLatin-1の後半にマッチしないという道理なわけですね。

しかし、Latin-1の後半を検出したり、特定の文字集合を検査したりするのにいちいちプラグインを用意するのでは手間もかかるし、効率も悪くなります。もっと手軽に、より多くのユーザーがPerl 5.8の持っている真っ当なマルチバイト文字サポートの恩恵に浴することができてしかるべきだと私は考えます。

というわけで、MT 3.2に付属のSpamLookup 2.0に対するパッチを用意してみました。

SpamLookup2.0-encode.patch

このパッチを当てると、Keyword Filterの「未公開キーワード」ないし「迷惑キーワード」に、マルチバイト文字やUNICODEプロパティ・スクリプト・ブロックを使った正規表現が書けるようになります。

以下はExampleです。

Latin-1文字だけからなるコメント・トラックバックをはじく(BanASCII相当)

Keyword Filterの「未公開キーワード」ないし「迷惑キーワード」に以下のように追加します。

/^[\x00-\xFF]+$/

あるいは\p{Latin}などを使って可読性の良い方法でも書けるでしょう。

ひらがなを含まないコメント・トラックバックをはじく

Keyword Filterの「未公開キーワード」ないし「迷惑キーワード」に以下のように追加します。

/^[^あ-ん]+$/

ないし

/^\P{Hiragana}+$/

このバリエーションで句読点を必須にしたり、ひらがなの他にカタカナを必須にするルールも同様に書けるでしょう。

About Me

My Photo

つくばで働く研究者

Total Pageviews

Amazon

Copyright 2012 Ogawa::Buzz | Powered by Blogger
Design by Web2feel | Blogger Template by NewBloggerThemes.com