ヲチ板ミラー計画


トップに戻る


2004年からヲチ板ミラー計画はスタートしました。


Index

  1. ヲチ板ミラー計画とは
  2. ヲチ板ミラー計画の仕組み
  3. ヲチ板ミラー計画の問題点
  4. あぼーんの処理について
  5. 2ch Loggerの使い方

1.ヲチ板ミラー計画とは

 この計画は「dat落ちしたスレッドを●無しで読むにはどうればいいのか?」という一つの解決策を模索した結果生まれました。

 昔からヲチ板のdat落ちしたスレはなかなかhtml化されなかったのですが、●の販売に合わせるかのように更にhtml化が遅くなりました。現在はdat落ちして1年経ってもhtml化されません。

 普通なら●を購入して過去ログを読むのかもしれませんが、ある日邪な考えが浮かんでしまいました。

 「全スレッドを定期的に保存しておけば、dat落ちしても●無しで読めるじゃないか」

 このような単純な発想によりヲチ板ミラー計画は始まりました。

2.ヲチ板ミラー計画の仕組み

 ヲチ板ミラー計画を実行する一連のツールを"2ch Logger"と名づけました。"2ch Loggeer"は現在1つのスクリプトと3つのCGIから成っています。

 実はミラー用にダウンしたdatファイルはXREA鯖に置いていません。当然です。それだけの容量が確保できないし、ミラーリングスクリプトみたいに高負荷なスクリプトなぞ恐ろしくて置けません。

 XREA鯖に置いているのは転送用CGIのtrans.cgiだけです。他のCGI、スクリプトは全てXREA鯖から追い出しています。XREA鯖にある転送用CGIのtrans.cgiは他鯖に設置されたCGIの出力結果を転送しているだけです。

2−1.threadgetter.plの仕組み

 以下の手順でヲチ板のスレッドがダウンロードされます。

 これらを一つのサイクルとし、20分毎に自動実行されます。

2−2.read.cgiの仕組み

 以下の手順でhtml表示します。

 2chのread.cgiと大きく違うのはオートリンクをしない点にあります。

2−3.find.cgiの仕組み

 以下の手順でタイトル検索します。

 ただ単に検索だけを行うCGIです。

2−4.trans.cgiの仕組み

 以下の手順で別鯖にあるCGIを呼び出します。

 trans.cgiはread.cgi/find.cgiを仲介するだけの役割です。

以上の事を図式化すると

+---------------------------------+
|            2chのログ             |
+---------------------------------+
              ↑ 取得
+---------------------------------+ 定期実行  +----------------+
|         threadgetter.pl         |    ←    | スケジューラー   |
+---------------------------------+          +----------------+
              ↓ 作成
+---------------------------------+
|          ミラー用ログ             |
+---------------------------------+
    ↑取得                ↑検索
+---------------+   +-------------+
|   read.cgi    |   |   find.cgi  |
+---------------+   +-------------+
  ↑キー ↓変換      ↑キー ↓結果
+---------------------------------+
|            trans.cgi            |
+---------------------------------+
  ↑フォーム入力     ↓ 結果表示
+---------------------------------+
|            ユーザー              |
+---------------------------------+

3.ヲチ板ミラー計画の問題点

 考えられる問題点は以下の通りです。

 負荷の問題はスクリプトの最適化である程度軽減できそうですが‥。これらの問題がある限りいつ計画が中止するか分りません‥

4.あぼーんの処理について

 スレッド及びレスのあぼーんが検出されると、自動的にミラーから削除されます。

4−1.レスのあぼーん

 以下の手順によりレスのあぼーんを検出します。この方法はこちらを参考にさせて頂きました。

 結構いい加減なチェックに見えますが、実用上問題なさそうです。

4−2.スレッドのあぼーん

 subback.htmlに無いスレッドはdat落ちかスレッドあぼーんかどちらかです。

判定方法は

 少しex鯖への負荷が高いチェック方法ですが、ヲチ板の場合dat落ちもスレッドあぼーんも頻度が低いのでなんとかなりそうです。

5.2ch Loggerの使い方

 使い方は二通りです。

5−1.フォームより指定

 こちらから検索項目、あるいは表示に関する指定を入力します。各項目の説明は以下のとおりです。

スレッド番号より検索

スレッド番号
各スレッドに割り振られている番号です。スレッドのURLにあるhttp://ex.2ch.net/test/read.cgi/net/xxxxxxxxxx/の10桁の数字です。
範囲指定
表示するレスの範囲を指定します。開始を指定しなかった場合は1から、終了を指定しなかった場合は最終レスまで表示します。範囲指定に矛盾がある場合は無視されます。
>>1を表示しない
範囲指定しているときにこれをチェックすると、>>1を表示しません。
ID指定
指定されたIDの発言のみを絞り込みます。

タイトルより検索

検索文字
スレッドタイトルを検索します。半角カナは使用できません。検索時スレッドタイトルに含まれる半角カナは全角に変換する為、全角カナで検索しても問題ありません。
dat落ちしたスレッドだけ表示
これをチェックすると、dat落ちしたスレッドのみで検索します。これがチェックしている場合のみ検索文字を省略できます。その場合dat落ちしたスレッド全てを表示します。

 必要な項目を記入した後、「ログを探す」ボタンを押してください。

5−2.URLに直接パラメータを引き渡し

 2ch Loggerで使用しているCGIは全てGETメソッドでパラメーターを渡しています。よって、URLに直接パラメータを記述する事が出来ます。ただ、タイトル検索は日本語をエンコードする必要があるために、フォームから検索してください。

 URLに渡すパラメータは下の説明を参照してください。

各パラメータの説明

key
スレッド番号を指定します。スレッド番号とは各スレッドに割り振られている番号です。スレッドのURLにあるhttp://ex.2ch.net/test/read.cgi/net/xxxxxxxxxx/の10桁の数字です。
st
表示するレスの範囲指定する場合に使用し、範囲の開始を指定します。
ls
表示するレスの範囲指定する場合に使用し、範囲の終了を指定します。
nofirst
範囲指定しているときに>>1を表示させない時に使用します。値をonあるいはtrueにすると>>1の表示を行いません。このパラメータが省略された場合は>>1は表示されます。
id
絞り込むIDを指定します。IDに含まれる一部の記号はそのままではパラメータに引き渡す事が出来ません。分らない人は、フォームから絞込みをしてください。

 書式は

  http://puppet22.s9.xrea.com/cgi-bin/2chlogger/trans.cgi?[パラメーター#1]=[値]&[パラメーター#2]=[値]‥

となります。

例えば、「ヲチ板総合案内/質問+雑談スレッド」を例にとると、

http://puppet22.s9.xrea.com/cgi-bin/2chlogger/trans.cgi?key=1065534917
全レスを表示します。
http://puppet22.s9.xrea.com/cgi-bin/2chlogger/trans.cgi?key=1065534917&st=100
100レス目から表示します。>>1も表示されます。
http://puppet22.s9.xrea.com/cgi-bin/2chlogger/trans.cgi?key=1065534917&st=100&nofirst=true
100レス目から表示します。>>1は表示しません。
http://puppet22.s9.xrea.com/cgi-bin/2chlogger/trans.cgi?key=1065534917&ls=100
100レス目まで表示します。
http://puppet22.s9.xrea.com/cgi-bin/2chlogger/trans.cgi?key=1065534917&st=100&ls=110&nofirst=true
100レス目から110レス目まで表示します。>>1は表示しません。
http://puppet22.s9.xrea.com/cgi-bin/2chlogger/trans.cgi?key=1065534917&st=100&ls=100&nofirst=true
100レス目のみ表示します。>>1は表示しません。
http://puppet22.s9.xrea.com/cgi-bin/2chlogger/trans.cgi?key=1065534917&nofirst=on&id=R6CGC%2FAZ
IDが'R6CGC/AZ'のレスのみを表示します。>>1は表示しません。




puppet_master ◆hesl6eItdY