Guest User

archive anon's beauty

a guest
Jun 28th, 2012
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.53 KB | None | 0 0
  1. #!/bin/sh
  2. if [ "$1" = "" ] || [ "$(echo "$1" | egrep "https?://boards.4chan.org/[a-z0-9]+/res/[0-9]+")" = "" ]; then
  3. echo "Usage: `basename $0` <4chan thread url>"
  4. exit 0
  5. fi
  6. echo "4chan downloader"
  7. LOC=$(echo "$1" | sed 's_.\+/res/\([^#]\+\).*_\1_g')
  8. if [ "$LOC" = "" ]; then
  9. echo "Can't determine the thread's number"
  10. exit 0
  11. fi
  12. ST="static.4chan.org"
  13. if [ -s /system/build.prop ]; then
  14. for path in $(echo "$PATH" | sed "s_:_\n_g"); do
  15. if [ -s ${path}/busybox ]; then
  16. alias echo="${path}/busybox echo -ne"
  17. alias read="${path}/busybox sh read -n 1 Q"
  18. N="\n"
  19. R="\r"
  20. break
  21. fi
  22. done
  23. else
  24. alias echo="echo -ne"
  25. N="\r"
  26. R="\n"
  27. fi
  28. thejob () {
  29. if [ ! -d $LOC ]; then
  30. mkdir $LOC
  31. fi
  32. if [ ! -d $LOC/misc ]; then
  33. mkdir $LOC/misc
  34. fi
  35. egrep "//.\.thumbs\.4chan\.org/[a-z0-9]+/thumb/[0-9]*s\.jpg" $LOC.html -o | sed 's_^//_http://_g' > $LOC/misc/misc
  36. egrep "//${ST}/image/spoiler-?[a-z0-9]*\.png" $LOC.html -o | sed 's_^//_http://_g' | head -n1 >> $LOC/misc/misc
  37. egrep "//${ST}/image/favicon-?[a-z]*\.ico" $LOC.html -o | sed 's_^//_http://_g' >> $LOC/misc/misc
  38. egrep "//${ST}/css/[a-z]+\.[0-9]+\.css" $LOC.html -o | sed -e 's_\.css_\.css\n_g' -e 's_//stat_\nhttp://stat_g' | grep /css/ | head -n1 >> $LOC/misc/misc
  39. egrep "//${ST}/image/title/[a-z]+/[0-9a-z]+\.(jpg|png|gif)" $LOC.html -o | sed 's_^//_http://_g' > $LOC/misc/logo
  40. egrep "//images\.4chan\.org/[a-z0-9]+/src/[0-9]*\.(jpg|png|gif)" $LOC.html -o | sed 's_^//_http://_g' > $LOC/images
  41. sed -e "s_//.\.thumbs\.4chan\.org/[a-z0-9]\+/thumb/\([0-9]\+\)s\.jpg_${LOC}/misc/\1s.jpg_g" -e "s_//images\.4chan\.org/[a-z0-9]\+/src/\([0-9]\+\)\.\(jpg\|gif\|png\)_${LOC}/\1.\2_g" -e "s_//${ST}/image/title/[a-z]\+/[0-9a-z]\+\.\(jpg\|gif\|png\)_${LOC}/misc/logo.\1_g" -e "s_//${ST}/image/spoiler\(-\?[0-9a-z]*\)\.png_${LOC}/misc/spoiler\1.png_g" -e "s_//${ST}/image/favicon\(-\?[a-z]*\)\.ico_${LOC}/misc/favicon\1.ico_g" -e "s_//${ST}/css/\([a-z0-9\.]\+\)\.css_${LOC}/misc/\1.css_g" -e "s_\(<a href=\"\)${LOC}\(#p[0-9]\+\"\)_\1\2_g" -e "s_\(<a href=\"#p${LOC}\" class=\"quotelink\">&gt;&gt;${LOC}\)_\1 (OP)_g" -e 's_\(<a href="[0-9]\+\)\(#p[0-9]\+" class="quotelink">&gt;&gt;[0-9]\+\)_\1.html\2 (Cross-thread)_g' $LOC.html > a
  42. # :a;N;$!ba;
  43. mv a $LOC.html
  44. cd $LOC
  45. wget -nc -q -i images
  46. rm images
  47. cd misc
  48. if [ "$(ls|grep .css)" != "" ]; then
  49. rm "$(ls|grep .css)"
  50. fi
  51. wget -nc -q -i misc
  52. CSS=$(cat misc | tail -n1 | sed 's_.*/\([a-z]\+\.[0-9]\+\.css\)_\1_')
  53. sed "s_.*fade\(-\?[a-z]*\)\.png.*_http://${ST}/image/fade\1.png_g" $CSS > misc
  54. wget -nc -q -i misc
  55. sed 's_/image/fade\(-\?[a-z]*\)\.png_fade\1.png_g' $CSS > a
  56. mv a $CSS
  57. if [ "$(ls|grep logo.)" != "" ]; then
  58. rm "$(ls|grep logo.)"
  59. fi
  60. wget -q -i logo -O "logo.$(sed "s_\._\n_g" logo|tail -n1)"
  61. rm misc logo
  62. touch .nomedia
  63. cd ../..
  64. }
  65. echo "${N}Downloading to $LOC${N}"
  66. echo "${N}"
  67. echo "------------------------------${N}"
  68. while [ "1" = "1" ]; do
  69. trap 'EXIT=1' 1 2 3 15
  70. if [ -s $LOC.html ]; then
  71. wget -np -nd -nH -q -erobots=off "$1" -O a
  72. if [ "$(wc -c a|cut -d" " -f1)" -eq "0" ]; then
  73. echo "Thread has 404'd or 4chan is down. Stopping script${N}"
  74. rm a
  75. exit 0
  76. fi
  77. if [ "$(wc -c a|cut -d" " -f1)" -gt "$(wc -c $LOC.html|cut -d" " -f1)" ]; then
  78. mv a $LOC.html
  79. thejob
  80. else
  81. rm a
  82. fi
  83. else
  84. wget -np -nd -nH -q -erobots=off "$1" -O $LOC.html
  85. if [ "$(wc -c $LOC.html|cut -d" " -f1)" -eq "0" ]; then
  86. echo "Thread doesn't exist or 4chan is down. Stopping script${N}"
  87. rm $LOC.html
  88. exit 0
  89. fi
  90. thejob
  91. fi
  92. trap - 1 2 3 15
  93. if [ "$EXIT" = "1" ] || [ "$SLP" = "1" ]; then
  94. echo "Session completed. Exiting ${N}"
  95. exit 0
  96. fi
  97. echo "OK"
  98. sleep 10
  99. echo "\b\b  \b\b"
  100. done;
Advertisement
Add Comment
Please, Sign In to add comment