2014-11-20 19:05:30 +00:00
|
|
|
#!/bin/bash
|
2014-12-14 22:52:53 +00:00
|
|
|
|
2014-12-14 21:50:27 +00:00
|
|
|
export useragent="Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37... nope, actually wget"
|
2014-11-20 19:05:30 +00:00
|
|
|
|
|
|
|
mode=$1
|
|
|
|
|
2014-11-22 23:08:12 +00:00
|
|
|
help() {
|
|
|
|
if test "$2" = "file"; then
|
|
|
|
echo -e \
|
|
|
|
"Usage: $1 file URL FILE"\
|
|
|
|
"\nDownloads one video from URL (GoGoAnime-Page) to FILE."
|
|
|
|
elif test "$2" = "search"; then
|
|
|
|
echo -e \
|
|
|
|
"Usage: $1 search KEYWORDS [DIRECTORY]"\
|
|
|
|
"\nLists all links on the first result page at a search for KEYWORDS on GoGoAnime."\
|
|
|
|
"\nIf DIRECTORY is given, it will be created if it doesn't exist yet and all result videos will be downloaded to that directory."
|
|
|
|
else
|
|
|
|
echo -e \
|
2014-12-14 22:37:14 +00:00
|
|
|
"Usage: $1 file|search|update"\
|
2014-11-22 23:08:12 +00:00
|
|
|
"\nDownloads videos from GoGoAnime."\
|
|
|
|
"\n"\
|
|
|
|
"\nFor more help try: $1 file"\
|
|
|
|
"\n or: $1 search"
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2014-12-14 22:37:14 +00:00
|
|
|
if test "$mode" = "update"; then
|
|
|
|
echo "Checking md5sum of current version..."
|
|
|
|
if test "$(md5sum $0 | awk '{print $1}')" = $(wget -O - "https://raw.githubusercontent.com/overflowerror/Anineko/master/anineko.md5" -q); then
|
|
|
|
echo "Local version is up to date."
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
echo "Downloading update script..."
|
2014-12-14 22:52:53 +00:00
|
|
|
wget -O /tmp/$$.anineko-install "https://raw.githubusercontent.com/overflowerror/Anineko/master/install" --progress=bar:force 2>&1 | tail -f -n +12
|
2014-12-14 22:37:14 +00:00
|
|
|
echo "Download finished..."
|
|
|
|
|
|
|
|
echo "Executing..."
|
|
|
|
echo
|
|
|
|
|
2014-12-14 22:52:53 +00:00
|
|
|
bash /tmp/$$.anineko-install
|
2014-12-14 22:37:14 +00:00
|
|
|
|
|
|
|
exit $?
|
|
|
|
elif test "$mode" = "search"; then
|
2014-11-20 19:05:30 +00:00
|
|
|
text=$(echo $2 | tr " " "+")
|
|
|
|
dir=$3
|
2014-11-22 23:08:12 +00:00
|
|
|
|
|
|
|
if test -z "$text"; then
|
|
|
|
help $0 search
|
|
|
|
exit 2
|
|
|
|
fi
|
2014-11-20 19:05:30 +00:00
|
|
|
|
|
|
|
echo -n "Searching for $text ... "
|
|
|
|
links=$(wget --user-agent="$useragent" -O - "http://www.gogoanime.com/?s=${text}" 2> /dev/null | grep "Permanent Link to" | awk -F"<a " '{ print $2 }' | awk -F'\"' '{ print $2}')
|
|
|
|
echo -e "[ \033[32mdone\033[0m ]"
|
|
|
|
|
|
|
|
links=$(for link in $links; do
|
|
|
|
echo $link
|
|
|
|
done | sort)
|
|
|
|
|
|
|
|
i=0
|
|
|
|
for link in $links; do
|
|
|
|
i=$(echo $i + 1 | bc)
|
|
|
|
done
|
|
|
|
total=$i
|
|
|
|
|
|
|
|
echo "Found $total episodes:"
|
|
|
|
|
|
|
|
for link in $links; do
|
|
|
|
echo " - " $link
|
|
|
|
done
|
|
|
|
|
2014-11-22 23:08:12 +00:00
|
|
|
if test -z "$dir"; then
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
2014-11-20 19:05:30 +00:00
|
|
|
echo -ne "\nPress [Enter] to continue, [Ctrl] + [C] to cancel. "
|
|
|
|
read
|
|
|
|
echo
|
|
|
|
|
|
|
|
echo -n "Creating directory ... "
|
|
|
|
if test ! -d $dir; then
|
|
|
|
mkdir $dir
|
|
|
|
fi
|
|
|
|
echo -e "[ \033[32mdone\033[0m ]"
|
|
|
|
|
|
|
|
i=0
|
|
|
|
for link in $links; do
|
|
|
|
i=$(echo $i + 1 | bc)
|
|
|
|
file=$(echo $link | awk -F'/' '{ print $4}')
|
|
|
|
echo "Fetching file $i of $total: $file ..."
|
|
|
|
$0 file $link ${dir}/${file}.mp4
|
|
|
|
echo "done."
|
|
|
|
done
|
|
|
|
|
|
|
|
echo "All done."
|
|
|
|
|
2014-11-22 23:08:12 +00:00
|
|
|
elif test "$mode" = "file"; then
|
2014-11-20 19:05:30 +00:00
|
|
|
url=$2
|
|
|
|
file=$3
|
|
|
|
|
2014-11-22 23:08:12 +00:00
|
|
|
if test -z "$file"; then
|
|
|
|
help $0 file
|
|
|
|
exit 2
|
|
|
|
fi
|
|
|
|
|
2014-11-22 22:40:15 +00:00
|
|
|
extract() {
|
|
|
|
# first param: provider page url
|
2014-12-14 21:50:27 +00:00
|
|
|
echo -n " Extracting video-url... " 1>&2
|
2014-11-22 22:40:15 +00:00
|
|
|
vurl=$(wget --user-agent="$useragent" -q -O - "$1" 2> /dev/null| grep "url: " | grep '.flv\|.mp4' | tr '\"' "'" | awk -F"'" '{ print $2 }' 2> /dev/null)
|
|
|
|
vurl=$(python2 -c 'import sys, urllib; print urllib.unquote(sys.argv[1])' $vurl)
|
|
|
|
echo -e "[ \033[32mdone\033[0m ]" 1>&2
|
|
|
|
echo $vurl
|
|
|
|
}
|
|
|
|
|
|
|
|
download() {
|
|
|
|
# first param: video url
|
2014-12-14 21:50:27 +00:00
|
|
|
echo -n " Probing size... "
|
2014-12-14 21:21:20 +00:00
|
|
|
size=$(wget --user-agent="$useragent" "$1" --spider --server-response -O - 2>&1 | grep "Content-Length: " | awk '{ print $2 }' | egrep ".{5}")
|
|
|
|
echo -n $size
|
|
|
|
if test $size -lt 20000000 ; then
|
|
|
|
echo -e " \033[31m< 20 MB\033[0m"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
echo -e " > 20 MB"
|
2014-12-14 21:50:27 +00:00
|
|
|
echo " Starting Download... "
|
2014-11-22 22:40:15 +00:00
|
|
|
wget --user-agent="$useragent" -O "${file}" -c "$1" --progress=bar:force 2>&1 | tail -f -n +12
|
2014-12-12 21:19:56 +00:00
|
|
|
|
2014-11-22 22:40:15 +00:00
|
|
|
# echo -ne "\033[2A\033[0K"
|
2014-12-14 21:50:27 +00:00
|
|
|
echo " Download completed."
|
2014-12-14 21:21:20 +00:00
|
|
|
return 0
|
2014-11-22 22:40:15 +00:00
|
|
|
}
|
|
|
|
|
2014-12-14 21:50:27 +00:00
|
|
|
provider() {
|
|
|
|
# params:
|
|
|
|
# - provider name
|
|
|
|
# - provider grep-thing
|
|
|
|
|
|
|
|
text=" Try to extract "${1}"-frame..."
|
|
|
|
echo -n "$text"
|
|
|
|
for i in $(seq ${#text} 39); do
|
|
|
|
echo -n " "
|
|
|
|
done
|
|
|
|
purl=$(echo -e "${page}" | grep "${2}" | sed -e "s/#038;//g" | awk -F'\"' '{ print $2; }' 2> /dev/null)
|
|
|
|
if test -n "${purl}"; then
|
2014-12-14 21:21:20 +00:00
|
|
|
echo -e "[ \033[32mdone\033[0m ]"
|
2014-12-14 21:50:27 +00:00
|
|
|
download `extract $purl`
|
|
|
|
ret=$?
|
|
|
|
echo -n " overall download... "
|
|
|
|
if test "$ret" == 0; then
|
|
|
|
echo -e "[ \033[32mdone\033[0m ]"
|
|
|
|
exit 0
|
|
|
|
fi
|
2014-12-14 21:21:20 +00:00
|
|
|
fi
|
2014-12-14 21:50:27 +00:00
|
|
|
echo -e "[ \033[31mfail\033[0m ]"
|
|
|
|
}
|
2014-11-22 22:40:15 +00:00
|
|
|
|
2014-12-14 21:50:27 +00:00
|
|
|
export page=$(wget --user-agent="$useragent" -q -O - "${url}")
|
|
|
|
|
2014-12-16 16:46:39 +00:00
|
|
|
provider "playpanda" "playpanda"
|
|
|
|
provider "videowing" "videowing"
|
|
|
|
provider "playbb" "playbb.me"
|
|
|
|
provider "easyvideo" "easyvideo.me"
|
2014-12-12 20:38:40 +00:00
|
|
|
|
2014-11-22 22:40:15 +00:00
|
|
|
# Add additional providers here
|
2014-12-14 21:50:27 +00:00
|
|
|
|
2014-11-22 22:40:15 +00:00
|
|
|
echo -e " \033[31mPermanent fail!\033[0m"
|
|
|
|
exit 1
|
2014-11-22 23:08:12 +00:00
|
|
|
|
|
|
|
else
|
|
|
|
help $0
|
|
|
|
exit 2
|
2014-11-20 19:05:30 +00:00
|
|
|
fi
|