oekakibbs backup & 過去ログ更新スクリプト 説明書 2005/11/06 記述 ------------------------------------------------------------ 必要なもの : perl の動く環境。 ※ WindowsXP Home SP2 + Active Perl v5.8.6 build 811 で動作確認。 Windows環境なら、ActivePerl が入っていればOKだと思う。 参考URL : 窓の杜 - ActivePerl http://www.forest.impress.co.jp/lib/stdy/program/progdevenv/activeperl.html ActivePerlのインストール方法 - Windowsでperlを使おう! http://pocketstudio.jp/win/activeperl/ ------------------------------------------------------------ ディレクトリ構成の例 : # oekakibbs_bkup/ # │ # ├ backup/ <-- バックアップを保存しておくディレクトリ # │ ├ 20051019_211931/ <-- 数字のみでディレクトリ名を構成 # │ ├ 20051019_213000/ # │ └ ... # │ # ├ kakolog/ <-- 過去ログを保存しておくディレクトリ # │ ├ 6801_6900/ # │ ├ 6901_7000/ # │ └ 7001_7100/ # │ ├ index.html # │ ├ oekaki_7001.html # │ ├ oekaki_7021.html # │ ├ oekaki_7041.html # │ ├ oekaki_7061.html # │ ├ oekaki_7081.html # │ ├ oekaki_0000.png # │ ├ oekaki_7001.png # │ └ ... # │ # ├ oekakibkup.pl <-- バックアップ保存スクリプト # ├ urllist.txt <-- URL list 記述ファイル # │ # └ makekakolog.pl <-- 過去ログ生成スクリプト oekakibbs_bkup/ をカレントディレクトリにして、 perl oekakibkup.pl urllist.txt を実行すると、backup/ の中に、バックアップが保存される。 さらに、 perl makekakolog.pl を実行すると、 backup/ の中に保存されてる html や画像ファイルを使って、 kakolog/ の中に画像をコピー & 過去ログhtmlの中身を更新する。 ------------------------------------------------------------ oekakibkup.pl oekaki BBS のページを DL して、バックアップを取るスクリプト。 ● 処理内容 スクリプト中に記述したディレクトリに、 yyyymmdd_HHMMSS (ex. 20051106_101520) といった名前でディレクトリを作成。 ネットから oekaki BBS のページをDLして、バックアップを保存する。 ● 使い方 perl oekakibkup.pl URL情報記述ファイル そのままだと、標準出力に、DL状況がずらずらと出力される。 perl oekakibkup.pl URLlist記述ファイル > _result.txt とでもすれば、_result.txt に、DL状況が記録され、 後でエディタ等で確認できる。 ● URL情報記述ファイル の内容 // oekaki bbs URL ← 行頭に // がついた行はコメント行 // http://www.swaty.to/amezo/oekaki/picture.cgi?sort=1 http://www.swaty.to/amezo/oekaki/picture.cgi?sort=1&page=<><>start=0<>end=90<>step=10<>picurldir=http://www.swaty.to/amezo/oekaki/ // <> の部分が数字で置き換わる。 // start=0 開始番号 // end=90 終了番号 // step=10 いくつずつ数字を進めるか // picurldir=〜 画像が保存されてるであろうディレクトリのURL ● 注意 複数URLに対応するつもりで一部を作ってたけど、 考えてみたら、保存ディレクトリを一つしか指定してないから、 上書きされちゃいますな…。 複数URLを処理したい場合は、 ディレクトリを複数作って、その中に逐一スクリプトをコピーする等して 対応してください。 ------------------------------------------------------------ makekakolog.pl 上記スクリプトで保存したバックアップを元に、 過去ログ用 html を更新するスクリプト。 ● 処理内容 : スクリプト中に記述した、 「バックアップ用ディレクトリ」を検索して、 「過去ログ用ディレクトリ」に、画像をコピー。 (ディレクトリが無かったら、自動で作成してコピーする。) 「バックアップ用ディレクトリ」内のhtmlから、各コメントを抽出。 「過去ログ用ディレクトリ」内のhtmlの内容を、更新する。 ● 使い方 : perl makekakolog.pl そのままだと標準出力に、コピーファイル一覧、更新ファイル一覧が出力される。 perl makekakolog.pl > _result_updatelog.txt とでもすれば、_result_updatelog.txt に各一覧が記録され、 後でエディタ等で確認できる。 ● 注意 : 1. いきなり、実際に使う過去ログに適用して、 過去ログが破壊されるとマズイので、 バックアップを取りつつ、しばらくは実験してみてから使うこと。 一応、過去ログhtml は、 「〜.html.bak_yyyymmdd_HHMMSS」 といったファイル名でバックアップを作成しつつ処理をしてるので、 変なhtmlが出力されたときは、バックアップで書き戻してください。 (スクリプト中のフラグを書き換えれば、  バックアップを作らずに上書きだけすることもできます。) 2. 適用すべき過去ログ用htmlは、事前に作成しておくこと。 一応、過去ログ用htmlが存在しない場合は、 エラーとして出力してるので、それを参考に。 ------------------------------------------------------------ その他 : dl.bat バックアップ作成(ダウンロード)用 BATファイルの例 update.bat 過去ログ更新用 BATファイルの例