ホーム > HTMLに役立つヒント > マニュアルに書いてないNAMAZU > kbnama.plの使い方
ver0.31r3 2001/5/16
kbnama.plは、NAMAZUできのぼずの発言のインデックスを作るときに使うツールkbtitle.plの最新版です(ver.0.3から名称変更)。kbtitle.plはきのぼずR6シリーズ専用でしたが、kbnama.plはきのぼずR6/R7両シリーズ対応になっています。きのぼずR7シリーズは、参加者が記事の訂正・削除ができるようになりました。この訂正・削除に対応し、複数掲示板を一気に処理できるようにしたのがkbnama.plです。また、使用メモリ量も減少していますので、旧版kbtitle.plユーザーはこちらに乗り換えるようにお勧めします。
きのぼずの発言ファイルは、冒頭に必ず「<!-- Kb-System-Id: 1.0/6.3 -->」のようにきのぼず用のコメントが入っています
|
きのぼずの発言ファイルの中味 |
| <!-- Kb-System-Id: 1.0/6.7 --> <P> とりあえず作っては見たけど、この掲示板、利用する人いるのかな。</P> |
発言ファイル名はただの発言番号ですから、このままNAMAZUのインデックスを作ると「要約」部分にこのコメント行が表示されてしまいます。加えて、NAMAZUのhtml判定ではきのぼずの発言ファイルはプレーンテキストと判断されてしまうため、htmlタグの除去がされず、これらも表示されてしまいます。また、タイトル行もないため、ファイル名(つまり発言番号の数字だけ)がNAMAZUにはインデックスされてしまいますし、発言者名もNAMAZUにはわかりません。
|
上のファイルを検索すると…。よけいなタグは入っているは、発言者も発言タイトルもわからない。 |
|
1. 1(スコア:18)
|
そこで、一度オリジナル発言ファイルを「発言番号_@」という名前に変更して退避させ、インデックス作成用に同じ内容+タイトル・発言者名を加えたニセ「発言番号」ファイルを作ります。そのためのツールがkbnama.plです。
ニセファイルの内容はオリジナルの内容の先頭に「<title>発言番号 . タイトル</title>
<link rev="MADE" href="mailto:発言者名">」という2行を追加したものです。
こうしておくと、NAMAZUがインデックスを作る時に正しくタイトルと発言者名をインデックスに取り込み、htmlタグも除去してくれます。
なお、オプション(kbnama.phで設定)で<title>掲示板名発言番号 . タイトル</title>とすることもできます。
|
変換されたニセファイルの中味。赤で示した部分が追加された行。 |
| <title>1 . とりあえず作ったけど</title> <link rev="MADE" href="mailto:penguin-19"> <!-- Kb-System-Id: 1.0/6.7 --> <P> とりあえず作っては見たけど、この掲示板、利用する人いるのかな。</P> |
|
変換したファイルを検索すると、発言タイトル、発言者名も正常に表示されます。 |
|
1. 1 . とりあえず作ったけど(スコア:18)
|
このままの状態でもきのぼずの発言表示には影響を与えませんが、きのぼずで「引用してコメント」すると「<title>発言番号 . タイトル</title>」部分が表示されてしまいます。
そのため、NAMAZUのインデックスを作ったら、すぐにオリジナル発言に戻しておく必要があります。
ここまでの流れをもう一度整理します。
●最初の状態。発言ファイル(ファイル名は発言番号)のみ。
1 2 3 4 5 6 7
●kbnama.plで1回処理をするとオリジナルのファイル名は「番号_@」、タイトルが付加されたニセファイルは「番号」となる。この状態でNAMAZUにインデックスを作らせる。このとき、NAMAZU側の設定で「_@」のつくファイルのインデックスを作らせない。
1 1_@ 2 2_@ 3 3_@ 4 4_@ 5 5_@ 6 6_@ 7 7_@
●kbtitle.plで2回目の処理を行うとニセフィルは削除され、オリジナルファイルに戻される。
1 2 3 4 5 6 7
NAMAZUにインデックスを作らせるのは新しい発言だけでよく、いちいち全ファイルにこの処理を行うのは無駄です。前回処理した最新発言のファイル作成時間(kb.dbに記録された4番目の要素「例:954746683」)と、前回ニセファイル化したファイルの番号を記録しておきます。
2回目以降は、まず前回作成したニセファイルを削除して、元のオリジナルファイルに戻します。次に、kb.dbを調べて削除された発言があれば「発言番号_dell」という名前に変更します。同様に、前回記録された時間以後に作成された発言があればニセファイルを作ります(訂正発言は時間が新しいものに書き換えられるため、新規発言と同様にニセファイルが作られます)。
これらのデータを掲示板ごとに記録しておくのが「kbnama_rec」ファイルです。
実際にkbnama.plを動かすときには、次の手順で行うと良いでしょう。
1.kbnama.plを動かし、ニセファイルを作ってオリジナルを退避させる(「_@」)。
2.NAMAZUでインデックスを作る。
3.kbnama.plを動かし、今処理した発言ファイルをオリジナルファイルに戻す。
この3つの動作を一気にやってしまうのです。こうすることでNAMAZUのインデックスにはタイトルと発言者が表示され、きのぼずでは通常通り動作させることができます。
なお、この作業中に新しい発言などがないように、kbnama.plは作業前に自動的にkb.cgi(R7ではindex.cgi)をロックします。
実はけっこう大きな問題があります。それは、kbnama.pl中はきのぼずはロックされますが、mknmz中はロックされないという点です。mknmz中に発言があると、その発言はタイトル・発言者無しとしてインデックスされてしまいます。時系列にしたがってみると、こんな感じです。
システム側 | ユーザー側
−−−−−−−+−−−−−−−
|書き込み画面表示
kbnama.pl実行 |
mknmz実行 |書き込みボタン
書き込み処理 |
mknmz終了 | ←この時点で、新規書き込み発言はタイトルなしとしてインデックスされる
kbnama.pl実行 |
つまり、kbnama.plの処理前に表示された書き込み画面から、インデックス中(mknmz中)に書き込みコマンドが送られると書き込みができてしまうわけです。すると、この新規書き込みファイルはタイトルなし、発言者不明としてインデックスされてしまいます。
この問題はhamu69さんのアイディアで、1. UI/Fatal.plを変更し、2. mknmz中だけkb.ph(必要に応じてkb.confも)を発言禁止にすることでどーにかカバーできるようです。もっと処理を簡単にするには、mknmz中はきのぼずを止めてしまうことですが、数分間きのぼずが止まってしまうことになります。
詳しいやり方は「使い方」を参照してください。
きのぼずでは、「削除発言」は実はkb.dbでコメントアウトしているだけです。ファイルそのものは残っていますので、そのままにしておくとNAMAZUの処理・検索対象になってしまいます。
そこで、kbnama.plは、kb.db上で削除されたことになっている(#がついている)ファイルの名前を「番号_dell」に変換します。
訂正発言の場合はkb.dbでは訂正された時点の時間が書き込まれます。kbbama.plでは新規発言と同じ扱いになりますので、なにもしなくてもちゃんとNAMAZUのインデックスの対象になります。
また、掲示板ディレクトリにニセファイルを作るのではなく、INDEX(ニセファイル)専用のディレクトリを作り、そこにニセファイルを作成させることもできます(kbnama.phで指定)。
ただし、この場合はニセファイルは削除されませんので、掲示板ディレクトリとほぼ同じだけのファイルがINDEX専用ディレクトリにも作成されます。ディスク容量を喰いますし、最大ファイル数の制限がある場合は引っかかりやすくなります。
| 通常の場合は掲示板ディレクトリにニセファイルが作られる。 | INDEX専用ディレクトリを使う場合は「INDEX_掲示板名」にニセファイルが作られる。 |
| kb(R7はkbdata) +--kbnama.pl +--kbnama.ph +--test +--kbnama_rec +--1(ニセファイル) +--1_@(発言ファイル) +--2(ニセファイル) +--2_@(発言ファイル) +--3_dell(削除発言) +-- … |
kb(R7はkbdata) +--kbnama.pl +--kbnama.ph +--test + +--kbnama_rec + +--1(発言ファイル) + +--2(発言ファイル) + +--3(発言ファイル) + +-- … + +--index_test +--1(ニセファイル) +--2(ニセファイル) +--3_dell(削除発言) +-- … |
●ファイルの準備
必要なファイルは本体である「kbnama.pl」と、設定ファイル「kbnama.ph」、前回処理内容を記録しておく「kbnama_rec」です。
最初の処理では「kbnama_rec」の中を空っぽにしておきます。
「kbnama.pl」には最初の行のperlの位置を指定する記述がありますから、これを環境に合わせて書き換えてください。また、きのぼずR7の場合はindex.cgiの場所を指定する必要があります。
設定ファイル「kbnama.ph」で、処理対象の掲示板やオプションを指定します。
●ファイルを設置してパーミッションを設定します(パーミッション)
kbnama.pl
ver.0.3本体。R6はkbディレクトリ、R7はkbdataディレクトリに置く。(755)
kbnama.ph
設定ファイル。R6はkbディレクトリ、R7はkbdataディレクトリに置く。(644)
kbnama_rec
記録用ファイル。必要なだけコピーして各掲示板ディレクトリに置く。(666)
●漢字コードなど。
両方とも漢字コードはEUC、改行コードはLFにしてください。
●.mknmzrcの設定
もう一つ、大事な設定があります。退避中のオリジナルファイル「_@」と、削除発言「_dell」をNAMAZUに検索させないことです。
「.mknmzrc」ファイルに、次の赤い部分を追加してください。これでファイル名の最後が「_@」「_dell」のファイルのインデックスを作らなくなります。
$DENY_FILE = ".*\\.(gif|png|jpg|jpeg)|.*\\.tar\\.gz|core|.*\\.bak|.*~|\\..*|\x23.*|kb.db|kb.bord|kb.aid|kn.conf|kb.mail|.*_[1-9]|.*_@|.*_dell";
「kbnama.pl」は手動で実行してもいいですが(telnetしてkbnama.plのあるディレクトリに移動し「./kbnama.pl」を入力する)NAMAZUのインデックス作成と同時に自動実行した方が実用的です。連続実行ファイルを作成し、定期的にこの連続実行ファイルを自動的に起動させるのがベストです。
このとき、kbnama.plの開けた穴をカバーするために同時にkb.phを発言禁止用と入れ替えます(UI/Fatal.pl改造版はあらかじめ入れ替えておいて下さい)。
1.発言禁止用kb.phを作る
前述のように、kbnama.pl、mknmz、kbnama.plと順番に起動してやります。このとき、mknmz中にきのぼずで発言があると、タイトル・発言者なしでインデックスが作成されてしまいます。そのため、作業中はkb.phを変更し、発言(新規・返信とも)を禁止してやります。
○作り方
kb.phをコピーします。「$SYS_F_N = 1; # 記事の投稿」を「$SYS_F_N = 0; # 記事の投稿」に変更し、名前を「_kb.ph」としてオリジナルと同じディレクトリにおきます。
必要ならkb.conf(掲示板毎の設定ファイル)も同様にすり替え用を作ります。kb.conftがあっても、中で$SYS_F_Nをコントロールしていなければ、この処理は必要ありません。また、kb.confでその掲示板を発言禁止にしている場合も、もともと発言禁止なんですから必要ありません。
多くのきのぼずユーザーはkb.phで全体の発言をコントロールし、過去ログに移行したものだけkb.confで発言禁止にしていると思われますので、たいていの場合、kb.phの入れ替えだけのハズです。mknmz中は、こうして作った発言禁止kb.phとすり替え、きのぼずを発言禁止状態にします。こうすることでmknmz中は発言コマンドが表示されなくなり、穴をすり抜けて発言しようとしても「このコマンドは使えません」というエラーがでます。
2.改造版UI/Fatal.plを作る
さてさて、mknmz中に発言できなくなるのはいいのですが、「このコマンドは使えません」というエラーはちょっと誤解を招くかもしれません。実際には、mknmz中だけ発言できないわけですから。そこでUIフォルダにあるFatal.plをあらかじめ変更しておきます。このファイルはオリジナルと完全に入れ替えて、(mknmz中だけでなく)オールタイムで使います。
○オリジナル 121行目
$msg ="この$H_BOARDでは,このコマンド($errInfo)は実行できません.";
○変更後
$msg ="現在、この$H_BOARDでは,このコマンド($errInfo)は実行できません.
<br>(P)コマンドの場合、検索システムにインデックス中かもしれません。その場合は、数分してからもう一度お願いいたします。";
なんか、ハッキリしない言い方ですが、過去ログなどと共用のエラー表示のため、これで我慢してやってください<(_ _)>
また、使用上の注意として、「ときどき発言コマンドが消えるわけ」(インデックス中だけ発言できなくしているため)をヘルプかどこかに記述しておいた方がいいでしょう。
●連続実行ファイルを作る ▲このページのトップ
このファイルの置き場所はどこでもいいのですが、ここでは「毎日午前7時にインデックスを更新する」にならって「/home/name/html/NAMAZU/」ディレクトリにautoindex.shというファイル名で保存したことにします。パーミッションは755です。
shで行う作業の順番は次のようになります。下の雛形はちょっと長いですが、がんばってください。7.xの場合、しっかり確認していないので、流れがおかしくないか、確認してくださいね。特にkbdataとkbの行き来がいっぱいあるもんで注意してください。
1. kb.phを発言禁止用に入れ替える(これで新規発言・返信ができなくなるが、その他の機能は使える)
2. 1回目のkbnama.plする
3. mknmzする
4. 2回目のkbnama.plする
5. kb.phを元に戻す(発言も含めてフル機能が使える状態に戻す)
------------------- ここからautoindex.sh -----------------------
#!/bin/sh
# 自動インデックス更新.shファイル
#
## 以下の3行はLANG変数があらかじめサーバに設定されていない場合
## に必要なコマンドですので、設定が必要な場合は行頭のシャープを
## 外して有効にしてください。
# LANG=ja
# export LANG
# set | grep LANG
# ■================ きのぼずの発言を禁止するためにkb.phを入れ替える
# mknmz中にきのぼずの発言があると、その発言はタイトル・発言者が不明として
# インデックスされるので、kb.phを発言禁止版と入れ替える。
# このファイルの処理中は「発言、コメント」コマンドが表示されなくなります。
# 必要に応じてヘルプファイルにでもその旨記述しておいて下さい。
# 発言禁止版kb.phは、kb.phをコピーして
# $SYS_F_N = 1; # 記事の投稿 を $SYS_F_N = 0; にしたものを
# 「_kb.ph」という名前で保存しておくこと。
# きのぼずディレクトリに移動する
cd /home/name/html/kb
# 安全のためにきのぼずを止める↓6.xの場合。7.xはindex.cgi
chmod go-x kb.cgi
# ↓7.xはkbdataに移動する(次行の行頭の#を外して指定する)
# cd /home/name/html/kb
# オリジナルkb.phの名前を変更して退避
mv kb.ph @kb.ph
# 発言禁止用kb.phにすり替える
mv _kb.ph kb.ph
# ●A
# kb.confを変更する。---------------下の●Bと対応させること
# この処理はkb.phで全掲示板の発言をコントロールしている場合は必要なし。
# kb.confで掲示板毎に発言をコントロールしている場合は処理が必要。
# _kb.phと同様 $SYS_F_N = 0; とした「_kb.conf」を用意しておくこと。
# 必要なだけ※から※までをコピーして繰り返してください。
#
# ○1行目 掲示板ディレクトリに降りる。「cd test」のように指定する
# ○2行目 オリジナルkb.confの名前を変更する
# ○3行目 発言禁止用kb.confにすり替える
# ○4行目 きのぼずディレクトリに上がる。
#
#メモ:6.xでは今kbにいる。移動の必要なし。
#メモ:7.xではkbdataにいる。kbに移動の必要なし
# ※繰り返し始まり ↓使う場合はここから行頭の#を削除する
#cd 掲示板名
#mv kb.conf @kb.conf
#mv _kb.conf kb.conf
#cd ..
# ※繰り返し終わり ↑使う場合はここまでの行頭の#を削除する
#メモ:6.xでは今kbにいる。移動の必要なし。
#メモ:7.xではkbdataにいる。kbに移動する(次行の行頭の#を外して指定する)
#↓7.xの場合はkbディレクトリに移動する
#cd /home/name/html/kb
# きのぼずを動かす↓6.xの場合。7.xはindex.cgi
chmod go+x kb.cgi
# ■================ kbnama.pl処理その1
# ↓7.xはkbdataに移動する。6.xはkbにいるから必要なし
#cd /home/name/html/kbdata
# ./kbnama.plする。
# R6/kb.cgi、R7/index.cgiはkbnama.plが自動的にロック/解除します。
./kbnama.pl
# ■================ NAMAZUでインデックスを作る
# indexを作成するディレクトリに移動する
cd /home/name/html/NAMAZU/index/
# リストによってインデックスを作る。
# mknmzコマンドを書く。下はindexディレクトリにindexlistという
# インデックスファイルリストがおいてある場合。
mknmz -F indexlist
# ■================ kbnama.pl処理その2 オリジナルファイルに戻す
# INDEX専用ディレクトリを用意している場合は2回目の処理↓は必要ありません。
# R6.xではkb、R7.xではkbdataに移動します。下はR6の場合。
cd /home/name/html/kb
# ./kbnama.plする
./kbnama.pl
# ■================ きのぼずの発言を可能にするためにkb.phを元に戻す
# ↓7.xではkbディレクトリに移動する。6.xはkbにいるので必要なし
# ただし、2回目のkbnama.plをやらなかった場合は6.xでも移動すること
#cd /home/name/html/kb
# 安全のためにきのぼずを止める↓6.xの場合。7.xはindex.cgi
chmod go-x kb.cgi
# ↓7.xではkbdataに移動する。6.xは必要なし
#cd /home/name/html/kbdata
# 発言禁止用kb.phを退避する
mv kb.ph _kb.ph
# オリジナルkb.phの名前を元に戻す
mv @kb.ph kb.ph
# ●B
# kb.confを元に戻す。---------------上の●Aと対応させること
# この処理はkb.phで全掲示板の発言をコントロールしている場合は必要なし。
# kb.confで掲示板毎に発言をコントロールしている場合に必要。
# 必要なだけ※から※までをコピーして繰り返す。
#
# ○1行目 掲示板ディレクトリに降りる。「cd test」のように指定する
# ○2行目 発言禁止用kb.confを元に戻す
# ○3行目 オリジナルkb.confの名前を元に戻す
# ○4行目 きのぼずディレクトリに上がる。
#
# メモ:6.xは今kbにいる。移動の必要なし
# メモ:7.xは今kbdataにいる。移動の必要なし
# ※ 繰り返し始まり ↓使う場合はここから行頭の#を削除する
#cd 掲示板名
#mv kb.conf _kb.conf
#mv @kb.conf kb.conf
#cd ..
# ※ 繰り返し終わり ↑使う場合はここまでの行頭の#を削除する
# ■================ きのぼずを動かす
# メモ:6.xは今kbにいる。移動の必要なし
# メモ:↓7.xは今kbdataにいる。kbに移動する
#cd /home/name/html/kb
# きのぼずを動かす↓6.xの場合。7.xはindex.cgi
chmod go+x kb.cgi
------------------- ここまでautoindex.sh -----------------------
長くてすみません。やっていることはわかると思います。一つ一つ見ていって、実状に合わせてカスタマイズしてください。
●cronに登録する ▲このページのトップ
例によってcronに登録します。登録方法は「毎日午前7時にインデックスを更新する」を参照してください。
↓毎時0分に実行する例。
------------------- ここから -----------------------
0 * * * * /home/name/html/NAMAZU/autoindex.sh
------------------- ここまで -----------------------
これで毎時0分にオリジナルファイルを退避させてニセファイルを作り、インデックスを作っったあと、ニセファイルを削除してオリジナルに戻してくれます。インデックス中はきのぼずで発言できません。
INDEX作成専用ディレクトリを使用する場合は、あらかじめディレクトリを作っておいてください。場所はkb(R7ではkbdata)ディレクトリ直下で、名前は「INDEX_掲示板名」です。
削除したファイルを復活させる場合に手続きが面倒になります。kb.dbの該当ファイルの「#」を取り、発言ファイル名の「_dell」を取ります。次に、手動でニセファイルを作ってNAMAZUにインデックスを作らせる必要があります。
姉妹ツール「kbdellback.pl」を使うと、任意の発言番号のファイルだけニセファイル化することができます。この場合、オリジナルファイルに戻すには姉妹ツール「kbback.pl」を使ってください。
また、INDEX専用ディレクトリを使用する場合の注意として、次のことがあげられます。
kbnama.plの処理をする前に「削除」されていたファイルは、INDEX専用ディレクトリにはニセファイルが作られません。INDEX専用ディレクトリにニセファイルが作られた後に「削除」されたファイルは、ファイル名に「_dell」がつきます。このため、やや管理が面倒になりますが、ご了承ください。
任意の発言番号のファイルだけをニセファイル化したいときに使います。
「kbdellback.pl」を開いて設定します。「dellback」にニセファイル化したい発言番号を「番号+改行」のようにかいておきます。複数の発言をニセファイルにしたいなら、「番号+改行」「番号+改行」「番号+改行」のように、1行1番号として書いてください。
「kbdellback.pl(755)」と「dellback(777)」を掲示板ディレクトリにおきます。
削除発言を復活させる場合には、あらかじめkb.dbの該当の「#」を取っておいてください。#がとれていないと、削除発言と判断して無視します。
後はtelnetして掲示板ディレクトリに行き「./kbdellback.pl」するだけです。このとき、削除された発言のファイル名は「番号」でも「番号_dell」でもどちらでもかまいません。「番号」「番号_dell」は「番号_@」にリネームして退避し、ニセファイル「番号」が作られます。この状態でNAMAZUのインデックスを作ります。
このツールには元に戻す機能はありませんので、オリジナルに戻す場合は「kbback.pl」を使ってください。また、INDEX専用ディレクトリのことは考慮されていませんので、必ず掲示板ディレクトリで作業を行い、できあがったニセファイルをINDEX専用ディレクトリに移動させてください。
通常はこのツールを使う必要はありませんし、このツールは「kbnama.pl」と連動していません(kbnama_recには何も書き込まれません)ので、ご注意ください。
姉妹ツール「kbback.pl」は、「kbnama.pl」で作ったニセ発言ファイルを削除し、「_@」という名前に変更されているオリジナルファイルを元の発言番号だけの名前に変更します。「_dell」ファイルはそのままです。
実行したい掲示板ディレクトリにおき、パーミッションを755にします。telnetして該当ディレクトリに行き「./kbback.pl」と打つだけです。
おっと、ファイルの最初の行でperlの位置を指定することを忘れずに。
このツールは、何らかの原因でkbnama_recに記録してあった「元に戻すべきファイル」のリストがなくなった場合などに使います。通常はこのツールを使う必要はありません。
●kbnama.plの改訂履歴
ver0.31r4 2001/5/16
解説ファイルのみの変更。解説ファイル(このファイル)の「mknmz中の発言はタイトル・発言者が不明としてインデックスされる」問題の回避方法を変更した。r3の方法ではまだ発言できてしまうのである。
r3ではEntry.plを変更していたが、この必要はなくなった。代わりにFatal.plを改造し、kb.phをその都度入れ替える方式となった。kbnama.pl自体は0.31のままです。
ver0.31r3 2001/5/10
解説ファイル(このファイル)に「mknmz中の発言はタイトル・発言者が不明としてインデックスされる」問題の回避方法を追加した。発言禁止用Entry.plのひながたと、shファイルの雛形が大きく変更された部分。kbnama.pl自体は0.31のままです。
ver0.31r2 2000/6/7
解説ファイル(このファイル)の記述を一部変更した。
ver0.31 2000/6/6
例によって速攻バグ。同一ディレクトリで処理させた場合、日付の張り替えに失敗するバグを修正。
ver0.3 2000/6/6
・このバージョンから名前をkbnama.plに変更。それまではkbtitle.plだった。
・きのぼずR6/R7に対応。アルゴリズムがまったく異なるため、全面的に書き直した。
・メモリ使用量が減った。
・kb.db上で削除された発言には「_dell」がつくようになった。
・kbnama.phで複数掲示板を一気に処理できるようになった。
・INDEX(ニセ発言ファイル)専用ディレクトリにニセ発言を作るオプションがついた。
・処理掲示板の指定などはkbnama.phで行うようになった。
・掲示板ごとの作業記録はkbnama_recに行うようになった。
(●β5
・MACとUNIXの指定方法がきのぼずと逆になっていたので、混乱を避けるために修正。0がUNIXで1がMACです。
・kbnama.phの読み込みもメモリを食わないように修正。
・kb.cgiをロックするとき、666に変更していたので、644に修正。
●β4
・掲示板ごとに正しく変数が初期化されていなかったため、複数掲示板を処理させると動作がおかしくなるというバグを修正。
・メモリ節約のためkb.dbをforeachではなくwhileで処理するように修正。
テストデータ。1774発言の掲示板(kb.dbの大きさは229kb)を処理させたところ、オリジナル戻しファイルを記録したkbnama_recの大きさは8.4kbになった。
・kbnama_recもwhileに変更した。
・INDEX専用ディレクトリ利用時と、そうでないときの報告書式を変更した。
・作業中、きのぼず(R6ではkb.cgi、R7ではindex.cgi)をロックするようにした。
・ディレクトリの移動を絶対パスから相対パスに変更した。
●β3
・INDEX専用ディレクトリでオリジナル戻し処理をしてしまう(この処理は不要)バグを修正。
●β2
・INDEX専用ディレクトリを置いている場合、削除発言の処理をスキップしてしまうバグを修正。
●β1
kb.title.plを設計からやり直し、全面書き直し。)
ver0.21r3 2000/5/26
・機能に変更はありません。付属のドキュメント(このファイルです)に不備があったので、これを差し替えたパッケージです。まだ不備があるかも(^^;
ver0.21r2 2000/5/14
・機能に変更はありません。付属のドキュメント(このファイルです)に不備があったので、これを差し替えたパッケージです。
ver0.21 2000/4/12
・途中で削除発言があるとそこでストップしてしまうバグを修正。くそ、今度こそ。
ver0.20 2000/4/11
・作成するニセ発言ファイルの日付をオリジナルと同じものにするようにした。
・kbback.plの機能を統合し、前回処理したニセ発言ファイルを削除し、オリジナルファイルに戻す機能を付けた。
ver0.13 2000/4/8
・処理番号の報告に実際とズレがでるバグを修正。
・0.11の時から残っていたtitlecountに2行(前回の処理開始番号と終了番号)書き出す仕様を、終了番号だけ(1行だけ)に変更した。kbback.plと連動しないので前回の開始番号は必要ないため。
ver0.12 2000/4/7
・すでにリネームしたファイルかどうかチェックして、リネームされていればスキップする。
・発言ファイルの有無をチェックし、なければ削除発言と見なしてスキップする。
・発言番号の前に掲示板名を追加できるオプションを追加。
ver0.11 2000/4/6 未発表
・kbback.plの無駄な動作を防ぐため、外部にtitlecountファイルをおき、ここに前回の処理を記録するように仕様変更。
ver0.1 2000/4/5 未発表
・とりあえず動く。オリジナル発言をリネームし、タイトル行を追加したニセ発言を作る基本機能のみ。
●kbdellback.plの改訂履歴
ver0.1 2000/6/6
・最初のリリース。
●kbback.plの改訂履歴
ver0.14 2000/6/6
・メモリ使用量が減った。
ver0.13 2000/4/8
・処理回数をほんのちょっとだけ変更。大して変わりませんが。
ver0.12 2000/4/7
・ニセ発言を削除して元の状態に戻すと、NAMAZUはそれを察知してインデックスを作り直すことが判明。運用のためにはkbtitle.plで処理した状態にしておく必要があることがわかった。このため、kbback.plはニセ発言を削除してオリジナル発言を元の名前にリネームする単機能ツールに仕様変更。
・判定ルーチンもかなり省かれ、kb.dbの行数文だけ処理を繰り返すという原始的な方法にアルゴリズムを変更した。
ver0.11 2000/4/6 未発表
・titlecountを読み込んでkbtitle.plの処理跡をたどり、kbtitle.plが処理した発言の後始末を自動的に行うように仕様変更。kbtitle.plとの連携強化版。次にkbtitle.plと一つのプログラムにする予定だった。
ver0.1 2000/4/5 未発表
・自動的にニセファイルを削除し、元通りリネームする基本機能のみ実装。
忘れてました。著作権は放棄しませんが、改変することも、それを再配布することも自由です。どちらかというとですね、あまりにも汚いプログラムなので積極的に人に書き換えてもらいたいです(^^;
ダウンロードは、ダウンロードページからお願いします。