双助が作成する画像の情報が入った imghashlist.txt を消してしまったときに使用すると、imghashlist.txt を復元できます。 あとはいらない画像ファイルを手動で削除したときに、存在するファイルと imghashlist.txt との整合性を取りたいときにも使えるかな。 並び順は復元できないけど、たぶんそれは問題にならないと思う。
Python で書いてあるので双助が動く環境であれば動作すると思います。
ファイルをダウンロードしたら、エディタで開いて上のほうにある futa_dir
を自分の環境に合わせて書き換えてください。
## ここだけいじってから実行してください # 双助があるディレクトリ # UNIX 系 OS を使ってる人 #futa_dir = r'/home/chiba/futaba/' # Windows を使ってる人 futa_dir = r'E:\documents\futasuke\futasuke-2006-03-26'
Windows ならダブルクリックで大丈夫だと思います。 進捗状況のようなものを見たい場合はシェル上 (Windows ならコマンドプロンプト、UNIX 系 OS を使ってる人はターミナルか仮想コンソール) から実行してください。
$ python remake_imghashlist.py
ため込んでいる画像の量にもよりますが、しばらく待つと処理が終わります。
あまりにも早く処理が終わった場合はエラーが起こってるかもしれないです。
シェル上から実行するとエラーメッセージが残るので、そっちからの実行をおすすめ。
新しいファイルは imghashlist.txt.new という名前で、指定した futa_dir
に作成されるので、壊れたり消したりしてしまった imghashlist.txt に上書きしてください。
約 62 万個、17 GB の画像がある私のところでやった場合は 460 秒くらいかかりました。 Linux で Pentium4 1.7 GHz という PC 環境。 CPU への負荷は大したことないけれどディスク IO がすごいです。
これはちょっとじゃあないんですが、行数が増えます。 量が膨大なので何が違うのか比較する気になれないのですが、たぶん支障ないです。
nov サーバでは画像があるところが http://nov.2chan.net:81/ になってますが、双助が画像を保存するディレクトリ名は nov.2chan.net/ になってます。 Windows だとファイルやディレクトリ名に ":" を使うことができないという制限のための処置だと思います。 このスクリプトは保存しているディレクトリ構造から imghashlist.txt を再生成するので、素直にやるとポート指定の部分を復元できません。 今のところは nov.2chan.net にあるファイルだったら、元の画像があったアドレスは nov.2chan.net:81 だったと決め打ちしています。 それで困ることがあったら教えてください。