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に対するパッチを用意してみました。
このパッチを当てると、Keyword Filterの「未公開キーワード」ないし「迷惑キーワード」に、マルチバイト文字やUNICODEプロパティ・スクリプト・ブロックを使った正規表現が書けるようになります。
以下はExampleです。
Latin-1文字だけからなるコメント・トラックバックをはじく(BanASCII相当)
Keyword Filterの「未公開キーワード」ないし「迷惑キーワード」に以下のように追加します。
/^[\x00-\xFF]+$/
あるいは\p{Latin}などを使って可読性の良い方法でも書けるでしょう。
ひらがなを含まないコメント・トラックバックをはじく
Keyword Filterの「未公開キーワード」ないし「迷惑キーワード」に以下のように追加します。
/^[^あ-ん]+$/
ないし
/^\P{Hiragana}+$/
このバリエーションで句読点を必須にしたり、ひらがなの他にカタカナを必須にするルールも同様に書けるでしょう。
このエントリーのトラックバックURL: http://as-is.net/mt/mt-tb.cgi/331
Comments (0)