dat->html化自動処理プログラムをつくるスレ

このエントリーをはてなブックマークに追加
>85-86
やったつもり
/kako/xxxx/xxxxx/index.html のことなんだけど、dat2htmlは
"dat番号,スレタイトル,レス数\n"
の連続する index.txt を /kako/xxxx/xxxxx/ に作ることにして、
index.htmlは別途作ることにした方が、
/kako/index.html や /kako/index9.html の作成にも応用できていいと思うのだけど、どう?

既存の過去ログを洗い直す必要があるのが難点だが。
同じく、index.htmlの更新について、考えてました。

夜勤さんの話に、
 不要  /accuse/kako/index.html
 不要  /accuse/kako/index9.html
 ??  /accuse/kako/1000/index.html
 作成  /accuse/kako/1000/10004/index.html
とあったので、/1000/index.htmlも作る必要があると思っていたのですが、
調べてみると板名や鯖名などSETTING.TXTからも
直接取得できない要素が幾つもあります。
/kako/index.htmlから取得することも考えたのですが、
よくよく見直すと/kako/index.htmlと/kako/1000/index.htmlは、
ほぼ同じ形式で、同じスクリプトで作られているようです。
とすれば、/1000/index.htmlは作らないでも良さそうです。

で、/1000/10004/index.html(/999/index.html)だけ考えます。
こちらは、一覧以外の部分は非常に簡素になっているので、
読みこんで解析(既変換分を取得)し、新規に変換されたものを加えて
書きこむ形でよさそうです。(d2chhtml.hから流用出来る部分もあります)
新規作成/再構築する場合でも、板毎に異なるのは「掲示板に戻る」の
リンクだけなので、ロジックは簡単だと思います。

負荷的にも「/10004/index.htmlを一度読みこみ、新規変換スレを加えて書き出す」
だけなら、終了直前に毎回行っても問題にならないでしょう。
(ただ、index.htmlがない場合は「過去ログの.htmlを全て開いてタイトルを取得」
しか方法はないと思います)
問題は、「過去ログのスレ削除」にどう対処するかでしょう。
新規変換分を追加する一方だと、削除されてもリンクが残ったままです。
「追加があった倉庫に対しては、同時にディレクトリ内の.html一覧を取得し、
.htmlが存在するスレのみを書き出す」という方法もありますが、
倉庫に追加される度にディレクトリを開くのは、ファイルが多い板の場合には
(例えばhttp://corn.2ch.net/entrance/kako/index9.htmlの下には
.html .html.gz .dat.gz合計で1万を超えているのが幾つもあります)
無視できない重い処理になる可能性があります。
また、この方式であっても、
「1つも新規に変換したスレがない倉庫内でスレ削除があった」時は
削除自体に気がつかず、indexを更新することができません。

結局、index.htmlのスレと実際に.htmlがあるスレとの整合性を保つためには
「過去ログのスレ削除が行われたら、どれでもいいから同じ倉庫内の
他のスレを(html等は残したままで)もう一度HTML化待ちに加える」という
方式を(削除スクリプト/削除した人が)とらない限り、
何らかの手段/時点で、全倉庫を調べる必要が生じます。
起動オプション等でこれを行うようにするのは問題ないでしょうが、
「スレ削除が行われるたびにindex.htmlを最初から作成し直す」のは、
できる限り避けたいところです。

それと、/kako/以下の各index.htmlも、あらかじめindex.html.gzが
作成されているようなので、これも更新したら圧縮する必要があります。
また、.gzの圧縮率は皆 gzip -6 相当(オプションなし=DEFAULT)のようです。
mod_gzipも(SETTING.TXT取得時に確認した限りでは)同等です。
で、作りかけてます。

一つの板が終了(時間切れ含)する時に、index.htmlを更新する必要がある倉庫について
 index.htmlが既にあったら、既変換分を読みこむ
 なければディレクトリと既存の.htmlから読みこむ
し、
 新規に変換した分をマージし
 index.htmlを書き出す
という動作を考えています。
この程度の動作なら極端に重くはないと思われるので、
起動毎に行っても構わないと思います。また、終了前に更新されるので
「変換済み一覧(done.txt)」が不要になります。

「なければディレクトリと既存の.htmlから読みこむ」が
ちょっと面倒なのでこれを後回しにして
 あれば新規変換分と合わせて更新し、なければ新規変換分だけでindex作成
まで作って、なんとか動くようになったらcommitするつもりです。

あと、/accuse/kako/index.htmlと/accuse/kako/1000/index.htmlの方なんですが、
こちらはタイトルやレス数は必要なく、必要なのはスレッド数だけなので
夜勤さんスクリプトの方で、ls等を使って調べている気がします。
みんなおつかれー。

>>93
削除関係は、レス削除にしてもスレ削除にしても、削除スクリプトとの兼ね合いから
考える必要がありますね。
夜勤さんとの話し合いになると思いますが、過去ログ削除は例外的なことなので、
削除スクリプトの方で(もしくは簡易のシェルスクリプトか何かで)対応するのが
現実的かなと思います。
9694:02/02/08 05:00
一応動いた。
まだ、「index.html新規作成時に倉庫内のhtmlを探す」動作はしていない
index.htmlの作成と圧縮を付けた。これで、一応は要求仕様を満たした、、と思う。
少しおかしかったところをhttp://mentai.2ch.net/accuse/や
http://teri.2ch.net/test/read.cgi/accuse/1013276728/113のお願いを見て
あわてて直した。
.SUFFIXEXや-lstdc++が必要かも。
お久しぶり&乙カレーです.

ところで,現在どういう状態なんでしょう?
D-born対策等でそれどころじゃない!?
SYN-flood・HDD増設・ime.nuなどで忙しくて
テストしてる暇なんか無さそうだけど、少し変更してみた。

主な変更点は
・.htmlの圧縮を、出力ファイルを読みこまずにメモリ上で行うようにした
・index.htmlの更新を板終了毎→各倉庫ディレクトリ終了毎に
・コマンドラインで多少動作を変更できるようにした
・旧形式のログの変換ミスを修正
など。
と、週末の変更が一段落ついたのでこちらにも書きこみ。

個人的には、
夜勤さんがhttp://yasai.2ch.net/test/read.cgi/event/1012552935/
に書きこむ位の暇ができたら、テストも出来るんじゃないかと。
微修正。主な変更は
・「掲示板に戻る」のリンクを"/bbs/index.html"から"/bbs/"に
・既に変換済みのログの形式を.dat.gzから判別することも可能にした
・既に変換済みの.htmlからタイトル等を取得する部分のバグ修正
index.html内のタグを小文字で統一し、
「投稿日」の曜日等の補完もできるようにしてみた。
>>102
曜日補完、イイ!
104保全:02/02/26 04:33
保全。。。
・壊れたdatを変換しないよう(設定で変更可能)にした
・移転後の残骸は無条件で変換しないようにした
・移転後の.datにレスが続いているもの(古いdatに存在)の扱いを
 変換する/壊れたdatと同じ から選べるようにした
オイスターのおいちゃんが暇になった時に備えてのガイド

0.機能
・/bbs/temp/にある.datを(ファイル名の)古い順からhtmlに変換し
 .html,.html.gz,.dat.gzを作成する
・.datを変換したら、.dat自体も/kako/done/に移動する
 (移動せず削除することも可能:REMOVE_DATFILE)
・最下層のindex.html,index.html.gz(スレタイトル等が含まれるもの)を作成/更新する
・板別/鯖別でバナーを変更することも可能(make時に指定)
・動作ディレクトリ・稼働時間・プライオリティ・index.htmlの更新時の動作などは
 make時でもコマンドラインでも設定可能
・移転後の残骸は変換しない/壊れたdatも変換しない(デフォルト)
 (残骸や壊れたdatは/kako/broken/に移動する)
・詳細はdat2html.h、バナーなどはd2chhtml.h

1.ソースをDL
C++だけど、一部(コンテナとか)を除いて普通のC
http://2ch.nekoruri.jp/cvsweb.cgi/~checkout~/dat2html/dat2html.h
http://2ch.nekoruri.jp/cvsweb.cgi/~checkout~/dat2html/d2chhtml.h
http://2ch.nekoruri.jp/cvsweb.cgi/~checkout~/dat2html/dat2html.cpp
http://2ch.nekoruri.jp/cvsweb.cgi/~checkout~/dat2html/gzout.h
http://2ch.nekoruri.jp/cvsweb.cgi/~checkout~/dat2html/gzout.cpp
http://2ch.nekoruri.jp/cvsweb.cgi/~checkout~/dat2html/Makefile

2.dat2html.hの、ディレクトリを設定する(temp,done,broken)
テスト用のディレクトリにテスト用のdatを置いて試すとよいかも

3.Makefileの、zlibのあるディレクトリを設定する(read.cgiで使ったもの)
※ただし、dat2html.hのUSE_GZWRITEを定義したままCOMPRESS_LEVELを変えた場合は要注意
 dat2html.hでUSE_GZWRITEをdefineしている個所参照

4.makeする

5.試す
www-rootに相当するディレクトリで./dat2htmlとすれば2分間働く
./dat2html -h で、コマンドラインで設定可能なオプション一覧

6.不備があったら文句を言う
>>106
昨日声掛けたんだけど、ヒマがないらしい・・・(;´Д`)
108期待AGE!!!!:02/03/02 19:27
 
109老C屋@夜勤 ★:02/03/06 20:06
どもども、いつもお世話になっています。
おいちゃんだ〜〜。
遅いのは気にしなくていいと思われ。
こっちはマターリ待ってますんでヽ(´ー`)ノ
時間に余裕が出来たら、ローカル環境とかで>>106をやってみて
問題がでたら教えてくださいな
顔出してくれてありがとー。またーりやりましょね。
113老C屋@夜勤 ★:02/03/12 14:30
なかなか 忙しくて、ここにこれない私。
なんとか 今週中には ダウンロードしてコンパイルに挑戦したい。
お疲れさまです。
なかなか 忙しくて ここにこれない夜勤 ★さん。
むしろ 漏れが 手伝ってあげたい。
bbspinkのhtml化スクリプトはpinktower対応になってるみたいなので
http://wow.bbspink.com/leaf/kako/1015/10156/1015666572.html
・転送URL
・除外ホスト(ホストにこの文字列が含まれるURLには転送URLを付けない。
初期値は2ch.netとbbspink.com)
を指定できるようにするといいかも。
ime.nu対応の過去ログは存在が確認できませんでした。
過去ログをime.nu固定にするのはチョトコワイ、、、
こっちにも......zlib更新しなくていいのかな?
  Double Free Bug in zlib Compression Library
  http://www.cert.org/advisories/CA-2002-07.html
>>118
double-free問題は展開時の問題。
これやread.cgiは圧縮しかしないから平気っしょ。
>>119 そういえばそだね (`ο`)シンダフリ
dat2Html が実戦投入されないのは、
dat落ち過去ログにお金払ってくれる人が減っちゃうから?
122デフォルトの名無しさん:02/03/21 22:49
>>121
当然でしょ
dat2htmlを改造して、
dat落ちから○日以上たったスレだけをhtml化・・・とかでもいいけどね
124夜勤 ★:02/04/03 17:50
どのサーバも重くてネ (なんにもできないぞー)
まずは、サーバ増強がはじまるので、それからっ ですー スンマセン
おつかれさまれす。
126 :02/04/14 21:08
127デフォルトの名無しさん:02/04/20 23:27
 
128デフォルトの名無しさん:02/04/21 00:55
サーバ増強が待ち遠しいな
>>128
お金がかかりそうだけど。
130デフォルトの名無しさん:02/04/30 00:04
静岡人消えれ
↑ちょっと同意
132デフォルトの名無しさん:02/05/14 13:28
ageてみる
133デフォルトの名無しさん:02/06/01 21:44
漏れら極悪非道のageブラザーズ!
今日もネタもないのにageてやるからな!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧   ∧_∧    age
 (・∀・∩)(∩・∀・)    age
 (つ  丿 (   ⊂) age
  ( ヽノ   ヽ/  )   age
  し(_)   (_)J
134 :02/06/23 23:46
保守っとく
135デフォルトの名無しさん:02/07/07 17:01
保守あげ?
夜勤め。
保守
138デフォルトの名無しさん:02/08/14 11:59
保守
139デフォルトの名無しさん
最近dat→htmlの変換処理をしていないってのは本当かい?
●を買わせるためとはいえ、ちょっと酷いんじゃないかい?