web拍手支援cgiに一言メッセージの拒否機能が追加された。本文書では、拒否機能について説明する。なお、web拍手支援cgiについての説明は、以前の記事を参照していただきたい。
web拍手支援cgiに追加された一言メッセージの拒否機能、これが対象とするものは一言メッセージ、投稿者のIPアドレス、投稿者のリモートホスト情報の三点だ。もちろん拒否設定を追加する際に、なにを対象とするか決める必要がある。一言メッセージ及びリモートホストに対する拒否設定は単純だが、IPアドレスの指定に関しては少し説明が必要だろう。だが、まずは拒否機能の使い方について説明しよう。
拒否設定の追加、削除をするには、web拍手支援cgiトップページ最下部にある、拒否設定、設定を見るボタンを押して、拒否設定一覧ページに移動する必要がある。拒否設定一覧ページは、以下のような見た目である。
拒否設定一覧
拒否文字列に表示されている文字列が拒否したいキーワード、対象がフィルタをおこなう対象である。上記の例は、設定自体が無効にされているために動作しないが、これが有効である場合には、テスト文字列という語句を含む一言メッセージが拒否される(厳密にいうと記録されないだけで、拍手自体はカウントされる)。
編集のリンクで、設定の編集ページに移動できる。編集ページでは、拒否文字列の設定及び対象の選択、そして有効/無効の切り替えができる。
有効/無効のリンクは、その設定の有効/無効を切り替える。一時的に設定を無効にして様子を見る場合などに使うと便利だろう。
削除のリンクから、削除確認のページに移行できる。削除の確認ページで削除ボタンを押してはじめて設定は削除される。誤って削除リンクを押してもいきなりは削除されないので、ご安心いただきたい。
新規追加ボタンを押すことで、新規設定追加のページに移動できる。新規設定追加のページは編集ページと同じである。
一言メッセージを対象に拒否をおこなう場合、拒否設定に記された文字列がそのまま評価される。ワイルドカードや正規表現はサポートされない。ここに書かれたものが、単純に評価される。
例えば、平仮名のばかを拒否文字列に指定すると、引っ越したばかりなので荷物がまだ片づきませんという、なんら問題のないメッセージも拒否されてしまう。このように、設定によっては思いがけないメッセージがはじかれかねないので、どうぞ気をつけていただきたい。
リモートホストの拒否についても、一言メッセージに同じである。拒否設定に記された文字列がそのまま評価される。
例えば、So-netユーザーをはじきたい場合には、リモートホストを対象にso-net.ne.jpと書けばよい。こうすると、全So-netユーザーのメッセージが排除されるはずだ。ただしこのやり方だと影響範囲が大きすぎ、問題のないユーザーを巻き込む危険が高い。なので、アクセスポイントの地域なども含めた詳細な情報を含めるのがよいだろう。
なお、例としてSo-netを出したのは、So-netが嫌いだからではない。私の利用しているプロバイダがSo-netだからである。
IPアドレスでの設定は少々複雑だ。
単一のIPアドレスを対象に拒否したい場合には、そのままIPアドレスを記載するだけでいい。192.168.0.1を拒否したい場合には、192.168.0.1もしくは192.168.000.001と書くだけでいい。
拒否したいIPアドレスの範囲を示すことも可能だ。192.168.0と書いた場合には、192.168.0.0から192.168.0.255までが拒否対象になる。192.168ならば192.168.0.0から192.168.255.255までが、192なら192.0.0.0から192.255.255.255が対象となる。
拒否範囲をもう少し絞ることも可能だ。その場合はふたつのIPアドレスをハイフンで繋いで記述する。
192.168.0.1-192.168.0.20と書けば、その範囲のIPアドレスを持つユーザーの一言メッセージを拒否できる。またこれは192.168.0.1-20と省略することもできる。
192.168.0-20ならば、拒否範囲は192.168.0.0から192.168.20.255までとなる。192.168-200であれば、192.168.0.0から192.200.255.255が範囲となる。192-200なら192.0.0.0から192.255.255.255が拒否される。
ハイフンのうしろのIPアドレスを省略して書く場合は、ピリオドを打たないようにして欲しい。192.168.0.1-20.1のような書き方をすると、拒否範囲は192.168.0.1以降かつ20.1.255.255以前のIPアドレスと解釈される。もちろんこの評価には矛盾があるため、まったく意味を成さない。
一言メッセージの拒否機能の追加は、一言メッセージで寄せられた要望を受けてなされた。一言メッセージ拒否機能以外の改造例にも、皆様の要望やアイデアをもとにしたものがある。そうしたアイデアは私一人では決して得られなかったものであり、また思いついたとしても、面倒である、需要があるかどうかわからないなどの事情でもって、見送られたことであろうと思われる。
ここで、そうしたアイデアをお寄せくださった方々にお礼申し上げたいと思う。ありがとうございました。
上記の拒否設定について、一言メッセージはともかく、リモートホストやIPアドレスなんてわからないという方もいらっしゃるかと思う。そうした方は、以下の改造を試していただきたい。
また、一言メッセージで拒否をおこないたい場合、正規表現を使いたいと思われる方もいらっしゃるかも知れない。正規表現は確かに強力で、設定ひとつで多様な問題表現を拒否することも可能だろう。しかし、正規表現を間違えて記述するとweb拍手の動作にも影響が出るうえ、文字コードの問題から見た目には問題がないがエラーを引き起こすケースも考えられる。そうしたケースを避けるためのチェックが煩雑になると思われたため、正規表現は見送った。
それに、正規表現を使いたいというユーザーなら中級以上のスキルをお持ちだろうし、なら自身でプログラムの中身をいじって、拡張することも可能であろうと思われる。なので正規表現に関しては見送ってもかまわないと判断したわけだ。実際の話、正規表現を使って拒否できるよう機能を拡張することは難しくない(難しいのは、正規表現の整合性のチェックだ)。腕に覚えありという方は、ぜひチャレンジしていただきたい。
< web拍手改造:web拍手支援cgiに一言メッセージ拒否機能を追加 web拍手改造:web拍手解析画面を公式スクリプトに近づける >