- PiXhost downloader
- 実行するだけの場合にも Cypress が入って
$ yarn install
に時間がかかるのは何とかしたい
$ git clone https://github.com/nikukyugamer/pixhost-downloader
$ cd pixhost-downloader
$ yarn install
$ npm link
$ npx pixhost_downloader -u "https://pixhost.to/show/228/126849268_picturepub-iskra-lawrence-006.jpg" -d "~/"
$ npx pixhost_downloader --help
Usage: pixhost_downloader [options]
Options:
-u, --url <url> A image URL on PixHost
-d, --dir <directory> A directory to save the image (default: "/tmp")
-h, --help display help for command
- まずはイメージを作成する
- 200MB と結構大きなサイズなので、ここは見直したい
$ git clone https://github.com/nikukyugamer/pixhost-downloader
$ cd pixhost-downloader
$ docker image build --tag pixhost_downloader:latest .
- コンテナは実行後にすぐに削除されるので、コンテナの削除には気を使わなくて良い
- 都合上、コマンドはとても長大になるのでいくつかの注意点がある
- 予めディレクトリを作っておかないと権限が
root
になってしまい取り扱いが難しくなる
- 一時的なディレクトリなのでどこを指定してもよいが、権限の問題があるので
/tmp/pixhost_downloader
で固定した方が何も考えずに済むので楽
- 権限の問題上
LOCAL_UID
とLOCAL_GID
の 2つ の環境変数をコンテナ側で指定する必要がある - 書式は決まりきっているのでコピペで OK
- 以上を踏まえた上でコマンドを実行する
- 下記の
$HOME/HOZON_SURU_DIRECTORY
が保存ディレクトリになり、このディレクトリは予め作成しておく必要がある - 下記の
https://pixhost.to/show/228/126849268_picturepub-iskra-lawrence-006.jpg
が対象の URL となる - 上記以外はコピペをすれば良い
- 短縮コマンドなどを作成すると便利かもしれない
$ docker container run --rm -e LOCAL_UID=$(id -u $USER) -e LOCAL_GID=$(id -g $USER) -v $HOME/HOZON_SURU_DIRECTORY:/tmp/pixhost_downloader pixhost_downloader:latest -u https://pixhost.to/show/228/126849268_picturepub-iskra-lawrence-006.jpg -d /tmp/pixhost_downloader
不要になった場合やイメージを更新する際にはイメージを削除する。
$ docker image rm pixhost_downloader:latest
- おそらくこれが一番楽です
- 「使い方(Docker で実行する場合、かつ、イメージを自分でビルドする場合)」の「コマンドを実行する」の箇所において、対象のイメージ指定を
ghcr.io/nikukyugamer/pixhost_downloader:latest
に変えるだけです - コマンド例は次のとおりです
- 条件等は「使い方(Docker で実行する場合、かつ、イメージを自分でビルドする場合)」と同じ
$ docker container run --rm -e LOCAL_UID=$(id -u $USER) -e LOCAL_GID=$(id -g $USER) -v $HOME/HOZON_SURU_DIRECTORY:/tmp/pixhost_downloader ghcr.io/nikukyugamer/pixhost_downloader:latest -u https://pixhost.to/show/228/126849268_picturepub-iskra-lawrence-006.jpg -d /tmp/pixhost_downloader
~/.nodenv/versions/16.13.1/lib/node_modules
などの場所にシンボリックリンクを作ってくれる。
$ npm link
- シンボリックリンクがあるのでコマンドが実行できる
- シンボリックリンクなので直接の実行はできず、
npx
を付与する必要がある
$ npx pixhost_downloader -u "https://pixhost.to/show/228/126849268_picturepub-iskra-lawrence-006.jpg" -d "~/"
不要になった場合にはシンボリックリンクを削除する。
$ npm unlink pixhost-downloader