スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

大量にある画像キャッシュ

キャッシュ消さずにいたら30万ファイルになった。
ブラクラ削除したものや画像じゃない404や503のファイルも大量にあるようだけど。

ファイルが多すぎてなかなかエクスプローラではJaneのキャッシュが置いてあるディレクトリを開けないんだよね。
開いたところで、画像見られないから、みても仕方ないけどね。



Janeのキャッシュが置いてあるディレクトリのファイルを調べてVCHファイル名、NGFiles.txt互換ハッシュ、VCHファイルの作成アクセス更新日時をSqlite3でDBに保存するプログラムを作ってみた。

初回実行は、NGFiles.txt互換ハッシュを作るためにHDDガリガリしちゃうよ。
次からはFindFirstFileして、DBにあるVCHファイルの作成アクセス更新日時と同じものはNGFiles.txt互換ハッシュを調べ直さないので余りHDDガリガリはしない。
意図的にWM_TIMERで少しずつ処理しているので時間はすごいかかるけどね。

DBファイルが49MBもあり、PupSQLite.exeで開くとき少々待たされる。
SELECT COUNT(fileName) FROM vch;
結果
307291

もともとは、NGFiles.txtの嘘報告を調べる目的で考えてみた。



これで完成ではない。
今度は、NGFiles.txt互換ハッシュ、オリジナル情報、画像ファイル番号、サムネイル情報っていう別DBファイルを作ろうかと思っている。
でも忙しいから完成は未定。というか、このまま作らなかったりして。

簡単に言うとThumbs.dbファイルみたいなものを作るってことだ。画像データはDBではなく別ファイルにする。
Thumbs.dbファイルは1つでは足りないかもしれないので画像ファイル番号を設ける。

専用ビュアを作らないとだな。
グロかもしれないので、デフォルトでぼかしいれた表示にすべきか迷う。
そもそも、使い物になるくらい高速に動作してくれるビュアになるだろうか。

単なるデータではなくDBMSを用いたDBにしたことは正解だと思っている。
でも正直なところ判らん。
最近のコンピュータなら、DBMSつかわずに何の工夫もなくデータをファイル保存したり、定番のアルゴリズムで検索しても充分速いかもしれないな。

ついでに、タグ付けしてみたいな。
普通にキーワードを文字で入れてたら、DBファイルは大きくなるし、文字列の全文検索って遅そうだな。遅かったり検索できないタグ付けはつまらんし。



VCHファイル名やNGFiles.txt互換ハッシュから元URLや元スレッドをたどる仕組みはない。
膨大なDATから調べるの大変だから。
でもついでに自動タグ付けなんてできたら面白そうとは思っている。
しかしそれは難しい。
嘘の書き込みが多いから。

最近のGoogle画像検索って色指定とか大きさ指定とか似たような画像を検索するとか高度になってきているな。俺には似たようなことできない。できたら便利そう。あと自動グロ判定とか作れたらいいのになあ。
スポンサーサイト
  1. 2009/12/17(木) 00:28:27|
  2. JaneStyle
  3. | コメント:0

url2vchの問題点

これ間違えだった。
以下にこの話の訂正。
http://wclrp.blog90.fc2.com/blog-entry-115.html


ImageViewURLReplace.datで、以下の定義
http://(?:www\.|tw\.|es\.|de\.)?nicovideon?\.jp/(?:(?:watch|thumb)(?:_naisho)?(?:\?v=|/)|\?p=)(\d+)
$EXTRACT1
http://www.nicovideo.jp/api/getthumbinfo/$1
$EXTRACT
<thumbnail_url>([^<]+)

この場合、URLから直接VCHファイル名を割り出すことができなくなった。

これは、
http://www.nicovideo.jp/api/getthumbinfo/$1
をダウンロードし、その中に記述してある<thumbnail_url>のところに画像があるよって意味だ。
そしてその見つけた画像のURLを元にVCHファイル名を作る。

しかも
http://www.nicovideo.jp/api/getthumbinfo/$1
をダウンロードすると
HTTP/1.x 301 Moved Permanently

http://ext.nicovideo.jp/api/getthumbinfo/$1
の方をダウンロードするように指示される。

ということはHTTP通信機能が必要である。
HTTP通信しないurl2vchでは出来ないことになる。

ところでこの場合はJaneもURLからVCHファイル名を作り出すことはできない。
JaneはこのURLを見つけるたびに毎回HTTP通信を2回して<thumbnail_url>を検索するなんて面倒なことをしているとは思えないんだけど。
でも、最初の1度しか通信していないとしたら2度目以降はどうやっているんだ?

  1. 2009/09/08(火) 23:46:02|
  2. JaneStyle
  3. | コメント:0

URLから画像キャッシュ(vchファイル)のファイル名を得る

URLから画像キャッシュ(vchファイル)のファイル名を得るプログラムを作った。

でもプログラムやソース全体を公開できるようなものでもないので
vchファイルのファイル名を得る部分だけのC++ソースの一部を掲載した。
ミスが無ければ必要最小限の掲載があるので
多少のプログラミングができるなら動くプログラムを作れると思う。

http://www11.atpages.jp/~wclrp/pukiwikiplus/index.php?url2vch

これをアプリにするには
MD5変換は別途ネットから探すとか
ダイアログなどのプログラムを作る必要がある。



プログラムは今のところ公開予定なしだけど以下を作った。

URL入れてにURL入れると
  • 補正URLに、ttp:補完とime.nuリダイレクトとImageViewURLReplace.datの変換したURL
  • JVHの名前に、vchファイルのファイル名
  • その下に、vchファイルのヘッダ内容とヘッダサイズ、ヘッダ以外のサイズ、ヘッダ以外のデータをCImageで読ませてエラーでなかったら画像と判断して画像サイズ
を表示する。

2009-04-01-23-40.png

これが何に役に立つかというと、これ自体は役に立たない。
あるdatファイルに含まれる画像を
自分が今までコツコツと貯めてきたJaneの画像キャッシュから見つけ出して
普通の画像ファイルに変換して別のディレクトリにコピーするツールを作りたいときに使うくらいかな。
  1. 2009/04/01(水) 23:32:01|
  2. JaneStyle
  3. | コメント:0
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。