2006/06/11
■[tDiary]トラックバックの表示/非表示の扱い
最近、このサイトもコメントスパム&トラックバックが増えてきました。tDiary 2.1系で搭載されたspamフィルタを使って、大抵のスパムは登録された時点で非表示にしてしまっているのですが、裏では結構スパムのデータが溜まってきています。
このスパムデータはもう非表示状態なので消さなくても問題ない(だからtDiaryでも削除はサポートしてない)んですが、個人的には、これがどうにも気になって仕方ありません。レスリングなんて興味ねえよバカー!みたいな。まぁ、神経質すぎるのは自分でも判ってるんですけどね……。
そんなわけで、今日ちょっと「非表示コメント&トラックバックを一括削除する」スクリプトを書いてみたのですが、そこで不思議な現象に出くわしました。僕が何か勘違いしているような気がしなくもないですけど、一応メモしておきます。
----
tDiaryはコメントとトラックバック(Pingbackも)を同じファイル(*.tdc)で扱っていて、各コメント/トラックバックは以下のような形式で保存されています。
Date: 20060611 Name: TrackBack Mail: Last-Modified: 1146307167 Visible: true http://muziyoshiz.jp/20060611 トラックバックの説明文 .
僕は単純にVisibleヘッダがfalseのデータを全て削除すれば目的達成!と思ったのですが……そういうスクリプトを書いて実行してみたところ、なんと表示中のトラックバックの一部までも一緒に削除してしまいました。
あれ?と思ってデータを良く調べてみたところ、どうやらtDiaryのトラックバックのデータには
- Visibleヘッダがtrueで、表示中のトラックバック
- Visibleヘッダがfalseで、表示中のトラックバック(←?)
- Visibleヘッダがfalseで、非表示のトラックバック
の3種類があって、この2番目のデータまで一緒に消してしまったのがまずかったみたいです(ちなみに、コメントの場合は2種類のみ)。
で、この2番目と3番目のデータの違いが何なのか調べてみたのですが、コードを読んでも、tDiaryが両者をどう区別しているのか全然分かりませんでした。結局、今回は2番目のデータだけ手でVisibleヘッダをtrueに書き換えて済ませたんですけど、これってどういうことなんでしょうか……?
また、この日記に無関係と判断したコメント及びトラックバックは削除する可能性があります。ご了承ください。