Hatena::ブログ(Diary)

by edvakf in hatena

2008-03-26

OperaでCacheを効果的に探す方法

言語ファイルに関する2007年8月の記事を見つけて、久々に興奮してしまった。

元ネタ Play with Opera language file - Opera FAQ’s, Tips, Tricks & Tweaks - by Tamil

Operaの言語ファイルには、メニューなどを各言語に対応させるための情報が入っていて、

966887426="プロキシサーバーに接続できませんでした"

こういうふうな書き方になっている。数字の部分がメニューの識別番号。

その引用府""の中には一行JavaScriptを書くこともできる。というのは前から知っていた。

参照 Eternal Half opera:pluginsにFlashPlayerのバージョンを表示させる


元ネタの記事は言語ファイルのそういう変わった弄り方が紹介されている。

その中に、thumbnails in opera cacheというリンクがあって、そこの追記にopera:cacheのadvanced searchというのがあるのだが、興奮してしまったというのはこれのこと。

要はキャッシュを取って来た先のURLに含まれる文字列で検索して絞り込むことができるというもの。

画像で見た方が解りやすいのだが、

f:id:edvakf:20080326142240p:image

この位置に検索欄を表示させ、インクリメンタルサーチ(この言葉あまり好きじゃないので「書くまま検索」と名付けたい)できる。その横のThumbnailというボタンを押すとjpgswfというファイルは「見える化」*1するのだが、それは元ネタの記事にまかせるとして、この検索がなかなかすごい。

例えばユ○チュ○ブなどの動画サイトで動画を見終わった後に保存したいと思ったときは、スクリプトなどを使っていちいちもう一度ダウンロードしなくても、キャッシュをあさればいいだけである。今まで、そういうときはOperaのキャッシュフォルダをファイラーで開いて"flv"で絞り込みしたりしていたのだが、Opera 9.50betaからはセキュリティの関係からキャッシュに拡張子が表示されなくて、元のファイル名とは関係のない文字列のファイル名になってしまったのだ。そのために動画は主にOpera9.26で見ていた。

このopera:cache advanced searchがあれば、例えば"lax.youtube"と検索をかけて(実はユ○チュ○ブの場合は"flv"では引っかかってくれない)、結果のURLをクリックすれば、キャッシュフォルダからそのまま動画を保存することができる。名前はget-videoとかいうのになっているので〜.flvに変える必要がある。


この検索欄の作り方は、Thumbnails in opera cache - My program for Opera - by A.Ruzanovにあるように、自分のプロファイルフォルダの〜.lngというファイルの中で-1713924769という文字列を検索して、そこを

-1713924769="Size<script type='text/javascript'>document.addEventListener('load',function() {for(var i=0; document.links[i]; i++){document.links[i].target = '_blank'};var l = document.getElementsByTagName('tr');var sf=document.createElement('input'); sf.type = 'text';sf.defaultValue='Search';sf.style='margin:0 4px;float:right;'; sf.addEventListener('focus',function(){if(this.value==this.defaultValue){this.value='';}},false);sf.addEventListener('blur',function(){if(!this.value){this.value=this.defaultValue;}},false);sf.addEventListener('keyup',function(){var v=this.value;for(var i=0, li; li=l[i]; i++){var p=li.lastChild.firstChild.innerText;if(p && p.indexOf(v)==-1){li.style='display: none'} else{li.style='display: table-row'}; }},false); var inp=document.createElement('input'); inp.type='button'; inp.value='Thumbnails';inp.style='float:right;';inp.addEventListener('click', function(){var b=/\.(jpe?g|bmp|gif|png|ico|swf|flv)$/i;var f=/\.(swf|flv)$/i;for(var i=0, li; li=l[i]; i++){var p=li.lastChild.firstChild;var c=li.lastChild.firstChild.innerText;if(li.offsetHeight!=0 && p.childNodes.length<2){if(b.test(c)){var stl='float:right; border:1px dotted black; margin:1px; padding:1px;'; if(f.test(c)){var dv=document.createElement('div');p.appendChild(dv);dv.innerHTML='<EMBED src='+p.href+'>';var fh=dv.firstChild;fh.setAttribute('height', 100);fh.setAttribute('width', 100);fh.setAttribute('style', stl+' content:normal; outline:none; color:inherit;');} else {var image=document.createElement('img');image.setAttribute('src',p.href);if(!image.height || image.height>100){image.height='100'};if(!image.width || image.width>100){image.width='100'};image.setAttribute('style', stl);p.appendChild(image);}}}};}, false);var th=document.getElementsByTagName('th')[2];th.appendChild(inp);th.appendChild(sf); },false)</script>"

のように書き換え、エンコードUTF-8で保存後、Operaを起動する。


1年前にFirefoxを使っていたときはCacheViewerという拡張を使っていたのだが、動作が遅すぎたりアップデートによる不具合があったりしてかなりイライラさせられていた記憶がある。

opera:cache advanced searchでOpera 9.50beta以降も快適動画生活!


この記事を読んでOpera9.50専用だと思った人がいるみたいですが、9.2xでも動きます。上のスクリーンショットは9.26。


Kurumaさんがブックマークレットにしてくれた。

言語ファイルを書き換えること無しに使える。

というわけで早速自分の常用している9.50betaで試してみたのだが、キャッシュのファイル数が2万7000近くあるせいか、検索がかなり遅かった。JavaScriptを使ってやってるんだからこの程度が限界かな。

元の作者さんが、Opera9.51以上用として5倍ほど速くなるバージョンを公開してくれている。

しかし、速さでいうならopera:cacheを開いてリンクパネルを出す方法には勝てないだろう。


Opera10対応アップデートが出てる。

*1:「見える化」とか言ってみたかっただけです

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証