Handle download errors, save thread errors to log file
This commit is contained in:
parent
1ac2983013
commit
6108d9b22c
26
massdl.sh
Normal file → Executable file
26
massdl.sh
Normal file → Executable file
@ -8,9 +8,10 @@
|
|||||||
#
|
#
|
||||||
# For getting help, execute ./massdl.sh without params
|
# For getting help, execute ./massdl.sh without params
|
||||||
|
|
||||||
|
UNIXTIME=`date +%s`
|
||||||
TMPDIR=`mktemp -d`
|
TMPDIR=`mktemp -d`
|
||||||
CURDIR=`pwd`
|
CURDIR=`pwd`
|
||||||
LOG_FILE="`date +%s`-massdl.log"
|
LOG_FILE="$UNIXTIME-massdl.log"
|
||||||
|
|
||||||
# Heading log file
|
# Heading log file
|
||||||
|
|
||||||
@ -25,19 +26,19 @@ EOF
|
|||||||
wget_func () {
|
wget_func () {
|
||||||
# Wget helper, which makes many wget usages more stable
|
# Wget helper, which makes many wget usages more stable
|
||||||
# Usage wget_func [path_to_redirect] [anything (wget params, such as -O...)]
|
# Usage wget_func [path_to_redirect] [anything (wget params, such as -O...)]
|
||||||
wget -t 99 --wait=1 --post-data="username=$USERNAME&password=$PASSWORD&autologin=on&login=%C2%F5%EE%E4&redirect=${1}" "http://nnm-club.me/forum/login.php" ${2} -a $CURDIR/$LOG_FILE
|
wget -t 99 --wait=1 --post-data="username=$USERNAME&password=$PASSWORD&autologin=on&login=%C2%F5%EE%E4&redirect=${1}" "http://nnm-club.ru/forum/login.php" ${2} -a $CURDIR/$LOG_FILE
|
||||||
}
|
}
|
||||||
|
|
||||||
# Checking if we have parameter, otherwise show help in Russian
|
# Checking if we have parameter, otherwise show help in Russian
|
||||||
if [[ ${@} == "" ]] ; then
|
if [[ ${@} == "" ]] ; then
|
||||||
echo "massdl.sh — скрипт для пакетной загрузки торрент-файлов из разделов nnm-club.me."
|
echo "massdl.sh — скрипт для пакетной загрузки торрент-файлов из разделов NNM-club.ru."
|
||||||
echo "Использование:"
|
echo "Использование:"
|
||||||
echo -ne "\n\t./massdl.sh [режим] [номер_раздела]\n\n"
|
echo -ne "\n\t./massdl.sh [режим] [номер_раздела]\n\n"
|
||||||
echo "где [режим] это режим загрузки (от имени пользователя, указанного в конфигурации скрипта — значение user, или же от имени фрилич-пользователя — значение freeleech), а [номер_форума] — номер раздела на nnm-club.me (например, для форума '*Nix Игры' это 316)."
|
echo "где [режим] это режим загрузки (от имени пользователя, указанного в конфигурации скрипта — значение user, или же от имени фрилич-пользователя — значение freeleech), а [номер_форума] — номер раздела на NNM-club.ru (например, для форума '*Nix Игры' это 316)."
|
||||||
echo -ne "Примеры:\n\n\t./massdl.sh freeleech 316 — скачивание форума '*Nix Игры' от фрилич-пользователя\n\t./massdl.sh user 332 — скачивание форума 'Русский рок' от собственного, указанного в скрипте, имени\n\n"
|
echo -ne "Примеры:\n\n\t./massdl.sh freeleech 316 — скачивание форума '*Nix Игры' от фрилич-пользователя\n\t./massdl.sh user 332 — скачивание форума 'Русский рок' от собственного, указанного в скрипте, имени\n\n"
|
||||||
echo "Автор: Valdos 'fat0troll' Sine."
|
echo "Автор: Valdos 'fat0troll' Sine."
|
||||||
echo "Основано на технологиях GNU."
|
echo "Основано на технологиях GNU."
|
||||||
echo "Версия 0.3"
|
echo "Версия 0.5"
|
||||||
exit 0
|
exit 0
|
||||||
else
|
else
|
||||||
echo "Выполняется скрипт ${0}."
|
echo "Выполняется скрипт ${0}."
|
||||||
@ -45,7 +46,6 @@ else
|
|||||||
echo -ne "Проводим разбор строки..."
|
echo -ne "Проводим разбор строки..."
|
||||||
# Script configuration
|
# Script configuration
|
||||||
case "x${1}" in
|
case "x${1}" in
|
||||||
|
|
||||||
"xuser" )
|
"xuser" )
|
||||||
# TYPE YOUR USERNAME AND PASSWORD HERE!
|
# TYPE YOUR USERNAME AND PASSWORD HERE!
|
||||||
USERNAME=user
|
USERNAME=user
|
||||||
@ -105,12 +105,24 @@ do
|
|||||||
echo -ne "Скачиваем торрент $THREAD/$THREADS."
|
echo -ne "Скачиваем торрент $THREAD/$THREADS."
|
||||||
# Temporary solution until will be finded way to use cookie.txt...
|
# Temporary solution until will be finded way to use cookie.txt...
|
||||||
wget_func $line "-O $TMPDIR/out_$THREAD.html"
|
wget_func $line "-O $TMPDIR/out_$THREAD.html"
|
||||||
|
# :3
|
||||||
|
TOPICHDR=`cat $TMPDIR/out_$THREAD.html | grep maintitle | cut -d '>' -f 4 | cut -d '<' -f 1 | iconv -f cp1251 -t utf-8`
|
||||||
|
TOPICLNK=`cat $TMPDIR/out_$THREAD.html | grep maintitle | cut -d '"' -f 10`
|
||||||
echo -ne "."
|
echo -ne "."
|
||||||
wget_func `cat $TMPDIR/out_$THREAD.html | iconv -f cp1251 -t utf-8 | grep download.php | sed 's/.*<a href=\([^>]*\).*/\1/' | cut -d '"' -f 2` "-P "$(($THREAD / 100))/" --content-disposition"
|
wget_func `cat $TMPDIR/out_$THREAD.html | iconv -f cp1251 -t utf-8 | grep download.php | sed 's/.*<a href=\([^>]*\).*/\1/' | cut -d '"' -f 2 | tail -1 -` "-P "$(($THREAD / 100))/" --content-disposition"
|
||||||
# Check for bad wget saving...
|
# Check for bad wget saving...
|
||||||
if [[ -f login.php ]] ; then
|
if [[ -f login.php ]] ; then
|
||||||
echo -ne ".имя файла потеряно. используется сгенерированное скриптом.."
|
echo -ne ".имя файла потеряно. используется сгенерированное скриптом.."
|
||||||
mv login.php "$(($THREAD / 100 ))"/$THREAD.torrent
|
mv login.php "$(($THREAD / 100 ))"/$THREAD.torrent
|
||||||
|
# Check if file is real torrent. If not... get an error
|
||||||
|
if [[ `file "$(($THREAD / 100 ))"/$THREAD.torrent | grep BitTorrent` ]] ; then
|
||||||
|
echo -ne ".файл сохранён как $(($THREAD / 100 ))/$THREAD.torrent.."
|
||||||
|
else
|
||||||
|
echo -ne ".скачан не BitTorrent-файл! После завершения работы скрипта проверьте файл $UNIXTIME-error.log — там будет ссылка на нескачанный топик!\n"
|
||||||
|
echo -ne "Пишем информацию в лог-файл.."
|
||||||
|
echo "Топик $THREAD: $TOPICHDR [https://nnm-club.ru/forum/$TOPICLNK]" >> $CURDIR/$UNIXTIME-error.log
|
||||||
|
rm "$(($THREAD / 100 ))"/$THREAD.torrent
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
echo -ne ".\n"
|
echo -ne ".\n"
|
||||||
popd >> /dev/null
|
popd >> /dev/null
|
||||||
|
Loading…
Reference in New Issue
Block a user