#!/usr/bin/perl -w use strict; # スクリプト情報.. #------------------------------------------------------------------------------------------------------- our $Script = q[HT Log Maker LE]; # v0.02b2 - 2004/05/19 ('class="main"'が重複するバグの修正のみ) our $Copy = q[Lilia]; our $Dist = q[http://nursery.s8.xrea.com/]; #------------------------------------------------------------------------------------------------------- # @じょしあな + TeamMIZUIRO 掲示板の記事データファイルから # 月ごとのHTMLログ及びそのリストを生成するスクリプト # * 完全無保証・改造推奨 # メモ.. #------------------------------------------------------------------------------------------------------- # こんなときにおすすめ # ・手元にはデータファイルしかないけどHTMLで読みたい # ・従来の過去ログでは画像が展開表示されないのが不満 # ・同じく参照記事のリンクが無効になっているのが不満 # ・掲示板閉鎖後にHTMLログのみアップロードしたい # etc. # # 基本的にはローカル実行用だけどサーバ上にアップロードして実行することも可能 # # データファイルのあるディレクトリ内に新しくログ用のディレクトリを作成して # そのなかでこのスクリプトを実行すると上書きの心配がなくて安全かも # ・生成されるファイル: N箇月分の YYYYMM.html + index.html # ・必要なファイル : 掲示板の記事データファイル (bbs.dat) # # 〜例〜 # cgi-bin/ # |--bbs.dat ..記事データファイル # |--data/ ..画像ファイルのディレクトリ(なくても可) # |--bbslog/ ..ログ生成用ディレクトリ # |--dat2html.perl ..このスクリプト # ↓ 実行後 # cgi-bin/ # |--bbs.dat # |--data/ # |--bbslog/ # |--dat2html.perl # |--index.html ..ログ一覧 # |--200105.html ..最初の月のHTMLログ # | : # |--200301.html ..最後の月のHTMLログ # # HTML文書の体裁を優先したため従来の過去ログとは互換性がないことに注意 # (従来の過去ログと差し替えると検索が正常に行えなくなる) # # 従来の過去ログと同形式にするには「#-- 設定ここまで」の次行を下のように設定 # our $subjc = 'fffffe'; # 題名と投稿者名の色(16進表記:先頭に # は不要) # (リダイレクタ・画像展開表示・フッタ挿入・ValidっぽいHTML/CSS・記事リンク等 # は無効になるが過去ログをそっくり復元したい場合には有用) # # 「投稿日」の「秒」の右にある「.」はその記事自身へのリンクになっているので # 当該記事にリンクを張りたい場合に便利な隠れ機能 # 設定.. #------------------------------------------------------------------------------------------------------- my $log = '../bbs.dat'; # データファイルのパス my $open = 1; # 実行後にログ一覧をブラウザで 1:開く / 0:開かない [for Win] my $cgi = 0; # サーバ上で実行する our $title = '@じょしあな'; # 掲示板のタイトル our $img_dir = '../data/'; # 画像ファイルのディレクトリ our $img_ins = '%image'; # 画像挿入キー our $img_disp = 1; # 画像表示 1:ON / 0:OFF our $insert = 0; # 下部にバナー等を挿入する(必要な場合のみ) #-- 以下はあれば設定、存在しないか設定する必要がなければ空欄 our $bbs_url = 'http://foo.bar.com/~user/cgi-bin/bbs.cgi'; # 掲示板本体のURL our $redir = ''; # リダイレクタのパス our $img_ndx = '../data/'; # 画像ディレクトリ一覧表示のパス #-- 以下は自分の環境に合わせて # スクリプトのバージョン our $ver = "v3.04"; # bodyタグ〈必須〉 our $body = '
'; # スタイルシート our $style = q` `; # バナー等〈例:XREA〉 our $banner = q`\n`; } print "now processing...\n\n"; open(DB, $log) || die("Can't open $log: $!\n"); our @logs = reverse\n; close(DB); our($strt_year,$strt_mon,$sday) = $logs[0] =~ /^(\d{4})年(\d{2})月(\d{2})日/; our($last_year,$last_mon,$eday) = $logs[$#logs] =~ /^(\d{4})年(\d{2})月(\d{2})日/; our($year,$mon,$nr,$nrr,$pcount,$aday,$zday) = ($strt_year,$strt_mon,0,0,0,$sday); our($next_year,$next_mon,$prev_year,$prev_mon) = &next($year,$mon); &xopen; # ログ一覧ファイル &head; # 最初の月のヘッダ &trunk foreach @logs; &foot; # 最後の月のフッタ &xclose; print "done!\n"; if($cgi) { print qq`
$title - 過去ログ