最終更新日:2011/12/09
NiseGrowlSafari - Safariのダウンロード完了をGrowlで通知するアプリケーション
NiseGrowlSafariとは
Safariのダウンロード完了をGrowlで通知するアプリケーションです。Safari5.1以降で本家GrowlSafariが使えなくなったので、なんとかならないかなということで、作ってみました。
動作原理は~/Library/Safari/Downloads.plistを監視してダウンロード完了を調べます。本家GrowlSafariの様に直接Safariの内部にアクセスしないので、Safariのバージョンが上がってもDownloads.plistの仕様さえ変わらなければ動かなくなることは無いと思います。ただ、欠点として、Downloads.plistの更新がリアルタイムではないようなので、通知が出るのが遅い場合があります。
開発環境
Mac OS X 10.6.8
動作確認環境
OSX 10.6.8 Safari バージョン 5.0.5 Growl 1.2.1
OSX 10.7.2 Safari バージョン 5.1.1(ちょっとだけ) Growl 1.2.2
使い方
- Safariの「ダウンロードリストからの削除」を「手動」にします。手動以外だとファイルにダウンロード情報が書き込まれません。
- NiseGrowlSafariを起動します。
- Safariのサービスメニューから設定ウインドウを表示できます。
- 通知をクリックするまで表示したままにするにはGrowl本体の設定で変更します。
- ダウンロード完了後のスリープをオンにしてもダウンロード完了時にすぐにスリープはしません。30秒間、カーソルの移動とキー入力(CGEventSourceKeyStateで0.1秒間隔で調べるので押している時間が短いと押していると認識できない場合があります)が無ければ、カウントダウンウインドウを表示して、カウントダウンが0になるとスリープします。作業中だとスリープしなくて、作業をしていなくて、席を外していたらスリープするという感じです。
使用上の注意
- バグ:同名のファイルを複数ダウンロードしてCat-1.zipの様にリネームされる場合、通知が2個表示されます。
- NiseGrowlSafariの起動前からSafariでダウンロードを開始しているものは通知されません。
- 通知の種類は"Download Complete"と"Short Download Complete"があります。Downloads.plistに書き込まれた時にダウンロードが終わっているのが"Short Download Complete"で、終わっていないのが"Download Complete"になります。
- ダウンロード完了後に通知が出る前に、ファイルを移動したり、削除すると通知が表示されなかったりするかもしれません。
- ダウンロードをキャンセルしたものがある場合、そのファイルをゴミ箱に入れた時に、通知が表示される場合があります。追記:直したつもりです。
- 同名のファイルをダウンロードして、保存したファイルに"-1"などが付いた場合、NiseGrowlSafariはそれを知る事ができないので、通知名には"-1"が付きませんし、通知をクリックしてファイルをFinderで表示した時に"-1"が付かないものが表示されます。また、ダウンロード終了判定に問題が出る場合があります。(ゴミ箱に入れたのにダウンロード終了通知が出る等)
コメント
0.3b1
短いダウンロードでも通知が早く表示されるようにしたけど、同名のファイルを複数ダウンロードした時に通知が2回表示されるようになってしまった…。でも、同名のファイルを複数回ダウンロードすることはあまりないので、まあいいかな、ということでそのままです。
0.2
"Short Download Complete"では10秒位ラグがあるけど、自分の場合、Growlで通知が必要なのダウンロードに時間がかかるものなので、まあ、大丈夫かな。
ダウンロード
- スリープ機能が必要ないならこちらのほうがオススメです:SafariDownloadComplete - Safariのダウンロード完了を通知してメニューバーのメニューにファイルを表示
- NiseGrowlSafari0.3b1.zip(全ダウンロード完了後にスリープできるようになった。短いダウンロード時にもすぐ通知が出るようになった。ただし、同名のファイルをダウンロードした時に、通知が2回表示されます。Cat.zipとCat-1.zipの通知等。)
- NiseGrowlSafari0.2.zip(処理の改良)
- NiseGrowlSafari0.1.zip