GearsMonkey on chrome/oAutoPagerizeで表示した写真を自動で全部ローカルに保存する

chromeにはもともとGears入ってるからGreasemonkey使えるようになったらGearsmonkey: Gears + Greasemonkeyでなんか遊べるかもー、と思って試行錯誤したらoAutoPagerizeLocalServerでロードした写真を全部ローカルに保存するっていうのができました。これはGearsのクロスドメイン制約の仕様上、実用性が低いんですけど、探せば何か便利な使い方ができるかもしれません。

oAutopagerize+LocalServer

もともとGearsはウェブアプリケーションでできることの幅を広げるためのものでしかないので、クロスドメイン制約が厳しくてあんまり自由にいろいろすることはできません。今回はページのコンテンツをキャッシュしてくれるLocalServerという機能を使って写真をローカルに保存するんですが、これがページと写真のURLのドメインが同じでないとキャッシュできない仕様になっています。ほとんどのサービスでは動的にページを生成するサーバと、静的に画像ファイルをサーブしてくれるサーバは別ドメインになっているので、たいていのサイトでは使えません(これまじめにオフラインで動くアプリ作ろうとした時にもけっこう不便だと思う)。

が、ストリートスナップ – Fashionsnap.comみたいにページと写真が同じドメインにあるやつだったらoAutoPagerizeLocalServerで写真をローカルに保存したりできます。

スクリプトのインストール

c:\scriptsoAutoPagerizefashionsnap.user.jsを入れます。
Scripts

Gearsの使用を許可する

oAutoPagerizefashionsnap.user.jsをインストールしてからストリートスナップ – Fashionsnap.comを開くと、一回目だけGearsを使うかどうかの確認が出るのでOKを押してGearsの使用を許可します。
Authme

ページをみていく

許可したらoAutoPagerizeでてきとうにページを見ていきます。
Fashionsnap

キャッシュを見に行く

てきとうにページを見たらキャッシュを見に行ってみましょう。キャッシュフォルダがプラットフォームによってまちまちみたいなんですがWindowsXPだとC:\Documents and Settings\ku\Local Settings\Application Data\Chromium\User Data\Default\Plugin Data\Google Gears\www.fashionsnap.com\http_80\streetsnap[4]#localserverにあります(kuのところはログインユーザ名)。

Cached

こんなかんじで読み込まれた写真がディスクに保存されます。Gearsのキャッシュなのでふつうのブラウザキャッシュと違ってGearsから明示的に消すまで消えません。

ドメインを越えてキャッシュできたら楽しいんですけどねー。


About this entry