オタク日記

三代目オタク日記

ダウンローダの更新

何故か朝になっていた

更新点

ニジエ上で直接画像をDLできるようにした

f:id:Kuonchan:20180403074628g:plain

今まではブックマークレットからダウンロードページに移動して画像をダウンロードする必要がありましたが、パラメータの設定をすることでニジエ上で画像をダウンロードできるようにしました。

設定

1.ブックマークレットを最新版にする

2.パラメータをstorage=3にする

3.保存したいファイル名の書式をfname=""のダブルクオーテーション内に書く

(例:作者名-画像タイトルだったらfname="$u-$t"。ここ参照)

4.以上

ね、簡単でしょう?

「ダウンロードしますか?」のアラートがウザい場合はnoconf=1にしてください。

完了通知もウザい場合はdl.phpの設定から「完了アラートを表示しない」にチェックを入れてください。

ファイル名にダブルクオーテーションは使えませんがそもそもWindowsもそうなので特に問題はないでしょう.その他の利用できない文字列を入力するとエンティティ化されます.

ZIPでダウンロードとそのままダウンロードを選択可能にした

ZIPでまとめて画像を落とすか、画像をそれぞれ生でダウンロードするかを選択することができます。

設定から「そのままダウンロード」にチェックを入れてください。

注意点

・一回ダウンロードした後に設定を変えて同じページでダウンロードする際はページの再読込をしないといけない(修正予定)

f:id:Kuonchan:20180403081713p:plain

・↑みたいなのが出たら許可しないといけない

・重複ファイルは(1)みたいな感じになるから重複ファイルチェッカーとかで取り除くのが手間

今更気づいた

・画像ファイル名がワンパターンじゃないから投稿者idを特定できない場合がある

(一応例外処理はしといたけどなんか方法がないかな)

仕組み

同一生成元ポリシーによってpoyashi.me上に置かれているスクリプトのファイルからはajaxで画像データにアクセスできないので、ニジエのページ上に見えないiframeを追加し、そこでpoyashi.meに置かれたページにデータをpostすることでページ遷移を防ぎつつダウンロードできるようにしています。

今回はjQuery.DeferredとsetTimeoutの合わせ技を用いて今まで以上にウェイト処理を噛ませてあるので、相手サーバーにも優しい仕様になっていると思います。

HTML5の新機能であるところのdownload属性とかいうのをふんだんに使った仕様となっています。ですから、古いブラウザでは動きません。(試してませんがとりあえずIEで動かないことは多分確かです)

ニジエ側でx-frame-options等の設定をされたら一発で使えなくなります。

 

ブックマークレットではなくChrome拡張とかでやればもっとすんなりいくんだろうけど、拡張機能用にアイコンを作らないといけないのがしんどすぎるし、デベロッパー登録手数料(5ドル)が勿体無いなぁ...って思ってブックマークレットにこだわってます。

細かいことはブックマークレットを読んでください。