引っ越しスクリプト
−−猫の運送屋さん−−
last update:2002.10.12
青空文庫の従来システムで使われている図書カードのURLを、新システムのURLに置換するPerlスクリプトです。
スクリプトを利用する際には、お使いのマシンに、JPerlまたはPerlがインストールされている必要があります。
JPerl、Perlのインストールについては、Windowsをお使いの場合は「青空文庫 文の道具箱」を、Macintoshをお使いの場合は「猫に真珠」を参考にしてください。
スクリプトと共に、新旧URLの対照表も公開しています。少量のURLを手作業で書き換える場合や、変換されずに残ったURLを書き換える場合などにご利用ください。
公開しているスクリプトや各種データファイルは、自由にダウンロードしてお使いください。改変を加えて利用される場合や、自サイトでの再配布を希望される場合も、ご連絡をいただく必要はありません。
スクリプトおよび各種データファイルには、改良、不具合修正などのため、予告なしに変更を加える場合がありますので、ご了承ください。
●圧縮ファイルの中身
スクリプトを利用せず、手作業でリンクを書き換える場合は、(1)のスクリプト、バッチファイルをダウンロードしなくてもかまいません。(2)のデータファイルで、新旧のURLを確認して置き換えてください。
(1) スクリプト、バッチファイル (aozora.lzh:57KB)
\aozora
- url_convert.pl link_save_2.plで作られた実行用スクリプト
- url_convert.bat url_convert.plの実行バッチファイル
- url_convert_o2n.pl 旧ディレクトリ構造置換実行用スクリプト
- url_convert_o2n.bat url_convert_o2n.plの実行バッチファイル
- readme.html このページと同じhtmlファイル(使い方の説明)
(2) データファイル(data.lzh:153KB)
\data
- linksaver.xls 全作品のURL対照表(Excelファイル)※
- url_list.csv 置換可能なURL一覧のCSV版
- notconv.csv 一対多対応などで変換不能なURL一覧のCSV版
- notconv_hash.txt 上記ファイルのハッシュ版
※変換可能なURL一覧と、一対多対応などで変換不能なURL一覧に、シートが分かれています。
従来システム側のURLは、凍結時の最終状態のものです。途中でディレクトリ構造が変更されたものも、最新の状態が反映されています。
作品名は、スクリプトで抜き出したものとなっています。図書カードに記載されている正式名称とは異なっている場合がありますが、あしからずご了承ください。
●簡単な使い方
-
置換したいファイルを 「aozora」フォルダ(スクリプトと同じフォルダ)内に置きます。
(3.で、置換したいファイル、置換後のファイルをフルパス名で指定すれば、この作業は必要ありません。)
-
バッチファイル url_convert.bat をエディタで開きます。
-
置換前、置換後のファイル名を書き換えます。
デフォルトではsakka.html、sakka_cnv.htmlになっています。
フォルダ名を含めたパス名を指定してもかまいません。
-
バッチファイルを保存し、ダブルクリックします。
-
DOS窓が開き、実行を開始します。100行処理する毎に「+」が表示されます。
「+」を表示する間隔を調整したいときは、url_convert.plをエディタで開き、
if ($count % 100 == 0){
の、100のところを、適当な数字に変えてください。
-
処理が完了すると、以下のメッセージが表示されます。(1)は「変換されたURLを含む行数」を、(2)は「URLを含んでいるが、全く変換されなかった行数」を示しています。
ただし、1行に複数のURLを含み、その一部のみ変換された場合は、(1)にカウントされますので、ご注意ください。
convert line count = nn --- (1)
can't convert line count = nn --- (2)
変換されたURLを含む行が、スクリプトと同じフォルダ内のcnv_log.txtに書き出されます。行数は、(1)のカウント数と一致しています。
URLを含んでいるが、全く変換されなかった行が、スクリプトと同じディレクトリ内のnotcnv_log.txtに書き出されます。行数は、(2)のカウント数と一致しています。
cnv_log.txt、notcnv_log.txtには、変換結果が追加されていきます。追加したくない場合は、既にあるcnv_log.txt、notcnv_log.txtの名前を変える、他のフォルダに移す、削除するなど、スクリプトと同じフォルダ内に存在しない状態にしてください。もとのファイルに追加せず、新たにファイルが作成されます。
-
一度に大量のファイルを処理したい場合は、バッチファイル内の行をコピーして増やしてください。
-
旧ディレクトリ構造の図書カードにリンクしている場合、1.〜4.の実行後、1.〜4.の変換後のファイルを変換前のファイルとして、同様の手順で、url_convert_o2h.batを実行してください。
1.〜4.で変換できずに残っていた旧URLが変換されます。
変換結果は、cnv_o2n_log.txt、notcnv_o2n_log.txtに、それぞれ書き出されます。
-
2つのスクリプトを実行した後も、変換されずに残っているURLがある場合、新システムのほうでは複数の作品に分割されている可能性があります。下記の注意事項を参照して、適宜、対処してください。
●注意事項
-
変換対象のhtmlファイルは、符号化方式をShift_JISで、改行コードを各OSに固有のコードで保存しておいてください。改行コードを正しく認識できないと、変換処理が行われません。
Windows: CR+LF
Macintosh: CR
UNIX: LF
-
作品名やURLの一部に「'」等の文字が含まれていると、実行用スクリプトが正常動作しない場合があります。
※エラー防止のため、『急がば回れ'99』は、スクリプトに入れていません。この作品は、スクリプトに追加せず、必ず手動で置き換えてください。
-
作品集などで、ひとつの旧URLに対して複数の新URLが対応するものは、data.lzh内のlinksaver.xlsのnotconvシート、およびnotconv.csv、notconv_hash.txtにまとめられています。これらの作品は、そのままでは、スクリプトによる自動変換ができません。
これらのURLの扱いは、各自の事情にあわせて、適宜判断していただけますようお願いいたします。
手作業で1作品ごとにリンク先を結びつける場合は、linksaver.xls、notconv.csv、notconv_hash.txtを参考にして、リンク先URLを検索してください。
変換用スクリプトに追加する場合は、notconv_hash.txtから、該当の行を、url_convert.plのハッシュ部分にコピー&ペーストしてください。
ただし、ハッシュ内で一対多対応となっていると、どのURLに変換されるかは保証されません。次のような方法を参考にして、適宜、対処してください。
(例では、読みやすいように、URLからwww.aozora.gr.jp/cards/xxxxx/の部分を省略しています。)
例)sakuhin.htmlが12345.html、23456.html、34567.htmlの3作品に分割される場合
-
html内にある従来システムのURLを3つコピーし、連番を付ける
『作品集』 sakuhin.html
↓
『あの作品』 sakuhin_01.html
『この作品』 sakuhin_02.html
『その作品』 sakuhin_03.html
-
notconv_hash.txt内のsakuhin.htmlのハッシュを、次のように書き換えてurl_convert.plに追加し、スクリプトを実行する
'sakuhin.html' => '12345.html',
'sakuhin.html' => '23456.html',
'sakuhin.html' => '34567.html',
↓
'sakuhin_01.html' => '12345.html',
'sakuhin_02.html' => '23456.html',
'sakuhin_03.html' => '34567.html',
-
連番に対応して変換される
『あの作品』 http://www.aozora.gr.jp/cards/87654/12345.html
『この作品』 http://www.aozora.gr.jp/cards/87654/23456.html
『その作品』 http://www.aozora.gr.jp/cards/87654/34567.html
●更新履歴
2002年8月17日
作品名の表記の違いなどにより、新旧が結びつかないデータについて、新URLを調査して、スクリプトのハッシュに追加。
新URL側が空白のものはハッシュを作らないようにスクリプト(正確にはテンプレート)を修正。
従来システム側の作品集を分解したものは、一対多対応となり、スクリプトで自動置換ができない。
→該当するデータのExcelファイルおよびCSVをアップ。
2002年8月23日
従来システムにおける、旧ディレクトリ構造のURL対応。
2002年9月23日
一般公開に先駆けて、全面リニューアル。
中間ファイル等の公開を中止し、置換用スクリプトおよび最終的なデータ対照表のみの公開に切替。
2002年10月06日
著者名、作品名付きの対照表を追加。
置換不能リストに、著者名を追加。
2002年10月12日
結果出力機能を追加。
お問い合わせは info@aozora.gr.jp まで。