PYR Image Saver [ver.2.9.1]~ChromeExtension~

バージョンアップしました。
更新内容は主に機能の改善とコードの修正になります。
それとアイコンを少しだけ変えました。

追記17/01/02 18:54
このバージョンにはライブラリ更新、コード修正等比較的大きな変更が含まれます。
恐らくこの事に起因して、正常に動作しなくなったという報告を頂いています。
そのため、以前のバージョンの拡張機能を暫定的に設置致します。
※『右クリックから保存』して、chromeの[拡張機能]ページにドロップして手動インストールして下さい。
PYR Image Saver [ver.2.1.0]

もし以前は動作していたが動作しなくなった、あるいはインストールしたが想定通りに動作しない、という場合、動作環境や症状、エラーメッセージ※1を添えてコメントなどで頂ければありがたいです。
※1 chromeの[拡張機能] から (デベロッパーモード)にチェックを入れて [PYR Image Saver] > [バックグラウンド ページ]で開かれたDeveloper Toolsの[Console]で出力されている文字列。
あるいは(デベロッパーモード)にチェックを入れて、拡張機能アイコンを右クリック > [ポップアップを検証] > Developer Tools > [Console]項目 で出力されている文字列
追記17/01/03 16:25
◆以前のバージョンの使用法について
ダウンロード頂いた【2.1.0.crx】について以下のLinkの記事が参考になるかと思います。
概要としては『crxファイルを解凍して、出てきたフォルダごと手動インストール』となります。
※この方法でインストールした場合の留意点としてブラウザ起動時に毎回警告が出ます。仕様ですので予めご了承とアップデートでの不具合の解消をお待ち下さい。
自動で無効化されたGoogle Chrome拡張機能を使用する方法

以下、追加・変更した部分の概要です。

カレントタブのみ対象とするオプションの追加
これまで静的解析オプションではカレントタブのみ処理する動作となっていたのを、挙動の一貫性を鑑みて全てのタブを対象とするように変更したことに伴い、それまでの動作をこのオプションにて維持できるようにしました。
また、このオプションが実装されたことに従って、通常状態での画像保存をカレントタブのみを対象とすることが出来るようになりました。

デフォルトで静的解析が有効となっている
非同期処理関連のプログラムの動作が改善されたため、デフォルトで有効とするように変更しました。
また、ページ内で複数の画像を保存する時、ディレイオプションが動作していなかった不具合を修正。

エラー処理の改善
これまでネットワーク切断状態などの例外を検出出来ていなかった問題について対策しました。
何らかのエラーが発生して画像が保存できなかったのに、タブを閉じるオプションが働いてしまっていた不具合を修正しました。

特殊な拡張子に対応
主にtwitterで見られるjpg:largeのような特殊な拡張子に対応しました。
上記に対しての処理としては:large部分を除去してファイル名とする形です(jpgファイルと見なす)。

■雑記
コメントで頂いた一部サイト(pi○iv等)で使えない問題に対して技術的には対応可能なのですが、それに必要なAPIがEventPagesに対応していないため、対応するとEventPagesの省メモリの利点を捨てる必要があるため、現在の見解としてはそういった一部のサイトに対してはやはり専用の拡張機能を導入するのが合理的かな、と考えます(Pixiv Downloader EXとか)。
ただ、現在ChromeでDevAPIにEventPagesで使えるAPIが来ているようなので、これが安定版APIになれば当ツールも対応すると思います。つまりgoogleの開発チームの動向次第…。

◆更新履歴
2.9.1 オプション設定をJSON形式で保存するように変更。
JQuery(v3.1.1)及びJQuery-UI(v1.12.1)に更新。
delayMSパラメータが保存されなかった不具合を修正(v2.9.0)
2.9.0 CSSICONを利用した表示UIに変更。
静的解析の時、タブの処理順に依存した終了チェック処理になっていた問題を修正。
タブとの通信が確立されていない時、エラーメッセージを表示するようにした。
2.2.1 chrome.alarmsAPIに依存した非同期処理をJQuery.Deferredで置き換え。
twitterの画像形式jpg:largeに対応。(jpgオプションに包含し、拡張子の自動置換)。
処理対象とするクエリ(付加文字列)の対応範囲を拡張。
保存に失敗した時にもタブが閉じてしまうことがある問題を修正。
静的解析でカレントタブのみ有効だった仕様を全てのタブを対象とするように変更。
ECMAScript6の対応した構文をサポートしていない過去のバージョンのchromeは非対応・非推奨になった。
2.1.0 ファイル名競合時にファイルを上書きするオプションの追加。
静的解析でタブ内で条件に一致する全ての画像を保存するオプションの追加。
2.0.0 拡張機能名の変更。
EventPagesに仕様を変更。
タブHTMLの静的解析機能を実装。
静的解析に伴うオプションを追加。
自動セミコロン挿入(ECMAScript規約)に依存しないコードに修正。
ダウンロードに失敗した時、対象画像を保持するタブを閉じない構造に修正。
ダウンロード終了後、結果を[notification]表示するようにした。
1.1.2 画像を保存したタブを自動で閉じるオプションの状態が復元されない不具合を修正。
1.1.1 振り分け先フォルダオプションの不具合を修正。
1.1.0 Deprecated APIの置き換えとCSSの微修正。
ダウンロードの間隔(ディレイ)の設定を追加。
Chrome設定フォルダ以下にダウンロードした画像の振り分けフォルダを作成する設定を追加。
オプションページに追加項目に対してToolTipの追加。
途中でPopupを閉じてもバックグラウンドで処理を継続するように仕様を変更。
オプションページ[Configure]ボタンでの設定の有効化をAlertで知らせるようにした。
一度ブラウザを閉じるとオプションページの設定をもう一度有効化する必要があった仕様を不要なように変更。
1.0.0 公開

■Coming Soon…
pyr_imagesaver_300a

カテゴリー: Extensions, Javascript, プログラミング全般 パーマリンク

PYR Image Saver [ver.2.9.1]~ChromeExtension~ への4件のフィードバック

  1. mon のコメント:

    はじめまして、またあけましておめでとうございます。

    早速で申し訳ございませんが、私も最新バージョンでは使えません。
    最新バージョンだと、数十枚の画像を保存しようとすると、ほぼ必ずクローム全体がフリーズし、徐々にメモリを使用し、数分で500MB増えてもフリーズしたままになります。結局クロームを強制終了しています。1枚だけ画像が保存され、TMPファイルが数個出来ただけになります。
    Optionは、拡張子、画像を保存したタブを自動で閉じる、静的解析ONにチェックを入れ、ディレイは2000と設定しています。

    また、下記ウェブサイトの記載通り、手動で入れた場合使えません。直後無効化され、有効化できず、削除する以外操作はできませんでした。
    https://support.google.com/chrome/answer/2811969?visit_id=1-636189989349591380-4155374646&p=ui_remove_non_cws_extensions&hl=ja&rd=1

    • Phiyory のコメント:

      chromeで最も軽いケースで言うと、画像だけをタブに開いた時、一枚に付き約10MB程メモリ消費していると思います。
      仮に五十枚開いたとすると500MB以上その時点で消費していることとなり、他に拡張機能等や常駐ソフト等の使用メモリを加えると
      かなりリソースを消費している状態だと言えます。

      開発環境では8GBのメモリを積んだPCを想定してテストを行っています。
      もし、お使いのPCのスペックがこれを満たさないようなら、スラッシングを引き起こして、動作が遅延したり最悪ブラウザが落ちたりすることが考えられます。
      しかしながらPCスペックが足りていても、あまりタブを開き過ぎない、こまめに画像を保存する、というのが経験的に一番の対処法のように思えます。

      以前のバージョンの拡張機能では数十枚のタブから想定通りに画像を保存できていましたか?
      テストでは多くても20~30枚程度のタブから保存を行う、という操作を想定して開発していましたので、
      それ以上の動作は恐縮ながら確認が取れておりません。
      アップデートをお待ち下さい。
      恐らく枚数を制限するか最大枚数を指定するか、どちらかの実装になると思います。

      以前のバージョンの導入手順につきましては、記事に追記致しましたのでご参照下さい。

  2. タカシ のコメント:

    先日画像が保存できない、タブが閉じない、タブにない他の画像を保存してしまう等の件で報告した者です。
    こちらがエラーメッセージだと思うのですが…。宜しくお願いします。
    success … ID:[10] 1/3 background.js:242
    done … ID:[10] ArrayNum:[1] background.js:256

    • Phiyory のコメント:

      ご報告ありがとうございます。
      出力を見る限りエラーは出力されていないように見えます。
      PYR Image Saver [ver.2.9.1]における問題の特定手順
      現状では当ツールにおける利用ライブラリと実装がご利用の環境と合っていないのかも知れないという推測しか出来ません。
      上記記事の手順をお試しいただければ問題点を把握できるかも知れません。

タカシ にコメントする コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です