d:id:tomo_snowbug:20090619:1245430454 のimageLoaderというGreasemonkeyスクリプトがなかなか素晴しいので, Vimperatorから使えるようにするついでに機能拡張してみた.
拡張された機能
- 表示/選択している画像をキーやボタン一つでローカルファイルに保存する
- 画像直リンクでない場合(fotolife等)もリンク先に大きな画像があれば取ってくる
- 画像直リンクではないがリンクURIから画像URIを推測できる場合(Google画像検索等)にURIフィルタでリンクを置き換える
- imageLoaderの先読みが進み次第スライドショーを自動的に開始
- スライドショーに移るときにVimperatorのキー操作を無効化(自動的にC-zする)
- 設定パネルのスペルミスを修正
保存先は設定パネルで設定/追加可能. URIフィルタはprefs.jsにGreasemonkeyの設定を書けば増やせるけれど, 今のところインタフェースはなくGoogle画像検索にのみ対応.
必要なもの
- Greasemonkey
- imageloader.user.js
- _libly.js (Vimperatorプラグイン)
- gmperator.js (Vimperatorプラグイン)
- imageloader.js (Vimperatorプラグイン; 今回作ったもの)
使い方
:imageloader
:imgldr
基本的に, Greasemonkeyの方ではImageLoaderを無効にしておくことを想定して作られている(:imageloaderするとgmperatorが読み込んでくれる).
直リンクでない画像をうまく取ってこれないときはもう一度:imageloaderするか, :imageloader!を使うようにする. !をつけるとimageLoaderをロードした後, 強制的に画像の再読み込みをする.
既知の問題
- :imageloaderした後, ページをリロードして再び:imageloaderすると, imageloader.user.jsが既に読み込まれてることになっててうまくいかない(gmperatorの問題?)
- :imageloaderを連打すると, 読み込み開始がものすごく遅れる/画像が重複して挿入されたりする(だいぶ直したつもりなのでもう大丈夫かも)
予想されるFAQ
- Q1
- Vimperatorは使っていませんが, 拡張された機能を使いたいのでなんとかなりませんか?
- A1
- がんばればなんとかなりますがVimperator使った方が早いしその方がきっと幸せですよ.
- Q2
- キー入力以外から拡張されたimageLoaderを開始できませんか?
- A2
- がんばればできると思うのでがんばって下さい.
- Q3
- EmacsとKeySnail/firemacsユーザなんですがどうしたらいいでしょう?
- A3
- viper-modeとVimperatorを使うようにすれば幸せになれますよ.