Advertisement
Guest User

Untitled

a guest
Oct 25th, 2014
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.29 KB | None | 0 0
  1. #!/bin/bash
  2. cookies_file=/dev/null
  3. db_file=$HOME/.mangadb
  4. notification_file=$HOME/update
  5.  
  6.  
  7. print_usage() {
  8.     echo "Usage: $(basename $0) [OPTION] [URL]"
  9.     echo "-o <directory>        Directory to download to"
  10.     echo "-r                    Download chapters first to last"
  11.     echo "-u                    Update all manga"
  12.     exit
  13. }
  14.  
  15. while getopts "o:ru" switch ; do
  16.     case $switch in
  17.         o)
  18.             dl_directory=$OPTARG
  19.             ;;
  20.         r)
  21.             reverse=1
  22.             ;;
  23.         u)
  24.             update_db=1
  25.             ;;
  26.         \?)
  27.             print_usage
  28.             ;;
  29.     esac
  30. done
  31.  
  32. shift $(($OPTIND - 1))
  33.  
  34. [[ -z $1 ]] && [[ -z $update_db ]] && print_usage
  35. [[ $dl_directory ]] && mkdir -p "$dl_directory" && cd "$dl_directory"
  36.  
  37. mget() {
  38.     wget --load-cookies=$cookies_file --header="accept-encoding: gzip" -q -O - $1 | gunzip
  39. }
  40.  
  41.  
  42. if [[ $reverse == 1 ]] ; then
  43.     load_chapters() {
  44.         mget $1 | grep -o 'href="http://bato.to/read[^"]*' | sed s/href=\"// | tac
  45.     }
  46. else
  47.     load_chapters() {
  48.         mget $1 | grep -o 'href="http://bato.to/read[^"]*' | sed s/href=\"//
  49.     }
  50. fi
  51.  
  52. batoto_get() {
  53.     for chapter in $(load_chapters $1) ; do
  54.         chapter_name=$(echo $chapter | grep -o '[^/]*$')
  55.         [[ $update_db ]] && [[ -d "$chapter_name" ]] && break
  56.         mkdir -p "$chapter_name"
  57.         pushd "$chapter_name"
  58.         max_page=$(mget $chapter | grep -o 'page [^</option>]*' | tail -n1 | sed s/page\ //)
  59.         for ((i=1; i<=$max_page; i++)) ; do
  60.             for image in $(mget $chapter/$i | egrep -o 'img.bato.to.*(jpg|jpeg|png|gif)' | sort -u | head -n 1) ; do
  61.                 wget -q -nc $image
  62.             done
  63.         done
  64.         popd
  65.         update_status=0
  66.     done
  67. }
  68.  
  69. manga_db_update() {
  70.     while read manga ; do
  71.         update_status=1
  72.         manga_link=$(echo $manga | awk '{print $1}')
  73.         manga_dir=$(echo $manga | awk '{$1=""; print}' | sed 's/^ //')
  74.         pushd "$manga_dir"
  75.         batoto_get $manga_link
  76.         if [[ $update_status == 0 ]] ; then
  77.             echo firefox \"$manga_link\" >> "$notification_file"
  78.             chmod +x "$notification_file"
  79.         fi
  80.         popd
  81.     done < "$db_file"
  82. }
  83.  
  84. if [[ $update_db ]] ; then
  85.     manga_db_update
  86. else
  87.     batoto_get $1
  88. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement