Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- UA='Mozilla/5.0 (Windows NT 6.1; rv:20.0) Gecko/20100101 Firefox/20.0'
- LANG=C
- uwget() { wget -U "$UA" -e robots=off --restrict-file-names=windows "$@"; }
- die() { echo "$1"; exit 1 ; }
- prefix=$(echo "$1" | sed -rn 's~https://2-?ch\.[a-z]{2}/([a-z]+)/res/([0-9]+)\.html~\1-\2~p')
- [ "$prefix" ] || die "ERROR: Incorrect URL ($1)"
- fname="${1##*/}"
- fullname="$prefix/res/$fname"
- if [ -e "$prefix/res/$fname.orig" ]; then
- header=$(wget --spider --server-response "$1" 2>&1)
- err=$?; test $err -ne 0 && die "ERROR: First wget returned non-zero ($err)."
- last_mod=$(echo "$header" | sed -rn '/Last-Modified:/ s~.*Last-Modified: (.*)~\1~p')
- if [ "$(ls -ln --time-style '+%s' "$prefix/res/$fname.orig"|cut -d' ' -f6)" -ge "$(date -d "$last_mod" '+%s')" ]; then
- die "Apparently remote HTML has not changed. Quitting..."
- fi
- fi
- uwget -nv -kpK -nd -P "$prefix/new" -X '*/thumb/*','ololo','images' "$1"
- err=$?
- if test $err -ne 0; then
- rm -r "$prefix/new"
- die "ERROR: Second wget returned non-zero ($err)."
- fi
- rm -rf "$prefix/res"
- mv "$prefix/new" "$prefix/res"
- pics_n_thumbs=$(sed -rn 's~"(https://2-?ch\.[a-z]{2}/[a-z]+/(src|thumb)/[0-9]+/[^"]+)"~\n\1\n~gp' "$fullname" | sed -n '/^https/ p' | sort -u)
- echo "$pics_n_thumbs" | grep "/thumb/" | uwget -nv -nc -nd -P "$prefix/thumb" -i-
- echo "$pics_n_thumbs" | grep "/src/" | uwget -nv -nc -nd -P "$prefix/src" -i-
- sed -r -i "s~(https://2-?ch\.[a-z]{2})?/[a-z]+/(src|thumb)/[0-9]+(/[0-9s]+\.[^'\"]+)~../\2\3~g" "$fullname"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement