Advertisement
Guest User

2ch thread saver

a guest
Jan 8th, 2015
431
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.51 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. UA='Mozilla/5.0 (Windows NT 6.1; rv:20.0) Gecko/20100101 Firefox/20.0'
  4. LANG=C
  5. uwget() { wget -U "$UA" -e robots=off --restrict-file-names=windows "$@"; }
  6. die() { echo "$1"; exit 1 ; }
  7.  
  8. prefix=$(echo "$1" | sed -rn 's~https://2-?ch\.[a-z]{2}/([a-z]+)/res/([0-9]+)\.html~\1-\2~p')
  9. [ "$prefix" ] || die "ERROR: Incorrect URL ($1)"
  10. fname="${1##*/}"
  11. fullname="$prefix/res/$fname"
  12.  
  13. if [ -e "$prefix/res/$fname.orig" ]; then
  14.     header=$(wget --spider --server-response "$1" 2>&1)
  15.     err=$?; test $err -ne 0 && die "ERROR: First wget returned non-zero ($err)."
  16.    
  17.     last_mod=$(echo "$header" | sed -rn '/Last-Modified:/ s~.*Last-Modified: (.*)~\1~p')
  18.     if [ "$(ls -ln --time-style '+%s' "$prefix/res/$fname.orig"|cut -d' ' -f6)" -ge "$(date -d "$last_mod" '+%s')" ]; then
  19.     die "Apparently remote HTML has not changed. Quitting..."
  20.     fi
  21. fi
  22.  
  23. uwget -nv -kpK -nd -P "$prefix/new" -X '*/thumb/*','ololo','images' "$1"
  24. err=$?
  25. if test $err -ne 0; then
  26.     rm -r "$prefix/new"
  27.     die "ERROR: Second wget returned non-zero ($err)."
  28. fi
  29.  
  30. rm -rf "$prefix/res"
  31. mv "$prefix/new" "$prefix/res"
  32.  
  33. 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)
  34.  
  35. echo "$pics_n_thumbs" | grep "/thumb/" | uwget -nv -nc -nd -P "$prefix/thumb" -i-
  36. echo "$pics_n_thumbs" | grep "/src/" | uwget -nv -nc -nd -P "$prefix/src" -i-
  37.  
  38. 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