yuyunko's blog

ぼうびろく

2chブラウザJDでスレ内の画像を一括ダウンロードする

JDは大変便利な2chブラウザだけれども,画像を一括で保存する方法がない.(Ctrl + a してから選択画像を開くをして,画像表示画面で全画像を保存・・・ってやってもできるけどウェイトがあるので時間かかる)

そこで超適当でスマートじゃないけどスクリプト書いてみた.

#!/bin/bash
# Usage: command input_url downloaded_directory
CMDNAME=`basename $0`
if [ $# -ne 2 ]; then
  echo "Usage: $CMDNAME input_url downloaded_directory" 1>&2
  exit 1
fi

cd ~/Pictures/2ch_img/
mkdir "$2"
cd "$2"
wget -O output.dat $1
grep -o -P 'http.*?(jpg|png|bmp)|ttp.*?(jpg|png|bmp)' output.dat > url_pre1.txt
sed -e "s/ <br> /\n/g" url_pre1.txt > url_pre2.txt
sed -e "s/^ttp/http/g" url_pre2.txt > url_pre3.txt   
grep -o -P '^http.*(jpg|png|bmp)$' url_pre3.txt > url.txt
wget -nc  -t 3 -i url.txt
echo "downloaded!!"

exit 0

使い方は,上のスクリプトをget_img.shで保存したとしたら,
まず実行権限をつけて

chmod +x get_img.sh

自分のホームディレクトリにPictures/2ch_imgを作る.

このスクリプト自体の使い方は,

get_img.sh datのurl 保存先フォルダの名前

として使う.

JDから使う時は,「設定」→「その他」→「ユーザコマンドの編集」と進み,右クリックして「新規コマンド」
コマンド名は適当に好きなので,実行するコマンドに

get_img.sh $DATURL "$TITLE"

とする.($DATURLはdatのURL,$TITLEはスレのタイトル$TITLEは空白が含まれている場合などを考え,""でくくってある)
ちなみにこれはget_img.shにPATHが通っている場合.

PATHが通ってないならPATHを通すか,絶対指定.($HOMEにあるなら$HOME/get_img.shとか)

ユーザコマンドを追加できたら,スレ内で右クリックしたらコマンドが追加されてるので,それをやると
~/Pictures/2ch_img/内にスレのタイトルのディレクトリが出来て,その中に画像が保存される.


その画像を一気に見たい時はfehを使うのが便利かも.

sudo apt-get install feh -y

でインストールして,使い方は

feh -rFD0.1 --cycle-once ~/Pictures/

これで~/Pictures以降の画像を再帰的に見れる.
オプションは以下の通り

オプション 効果
-r 再帰的にディレクトリを掘る
-F フルスクリーンモード
-D スライドショーの時間を秒で指定
--cycle-once 1ループで終了する

操作方法はhで一時停止トグル,nで次の画像,pで前の画像,vでフルスクリーンモードトグル

フルスクリーンでグロ画像とか出てきた時には・・・orz