Handle login errors, handle torrents count mismatch
This commit is contained in:
parent
6108d9b22c
commit
762b36c0f2
66
massdl.sh
66
massdl.sh
@ -13,20 +13,14 @@ TMPDIR=`mktemp -d`
|
||||
CURDIR=`pwd`
|
||||
LOG_FILE="$UNIXTIME-massdl.log"
|
||||
|
||||
# Heading log file
|
||||
|
||||
cat > $LOG_FILE << EOF
|
||||
================================================================================
|
||||
= Скрипт скачки раздела NNM-Club для Linux и Unix-like ОС. =
|
||||
= Построен на технологиях GNU. =
|
||||
Дата запуска: `date`.
|
||||
================================================================================
|
||||
EOF
|
||||
|
||||
wget_func () {
|
||||
# Wget helper, which makes many wget usages more stable
|
||||
# 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.ru/forum/login.php" ${2} -a $CURDIR/$LOG_FILE
|
||||
if [[ $? -gt 0 ]] ; then
|
||||
echo -ne "..ошибка загрузки, повтор.."
|
||||
wget_func "${1}" "${2}"
|
||||
fi
|
||||
}
|
||||
|
||||
# Checking if we have parameter, otherwise show help in Russian
|
||||
@ -68,6 +62,17 @@ else
|
||||
echo -ne ", номер форума ${FORUM}.\n"
|
||||
echo "Начинаем работу..."
|
||||
fi
|
||||
|
||||
# Heading log file
|
||||
|
||||
cat > $LOG_FILE << EOF
|
||||
================================================================================
|
||||
= Скрипт скачки раздела NNM-Club для Linux и Unix-like ОС. =
|
||||
= Построен на технологиях GNU. =
|
||||
Дата запуска: `date`.
|
||||
================================================================================
|
||||
EOF
|
||||
|
||||
# Downloading main page of the selected forum
|
||||
wget_func `echo 'viewforum.php?f='$FORUM` "-O $TMPDIR/page0.html"
|
||||
FORUMNAME=`cat $TMPDIR/page0.html | iconv -f cp1251 -t utf-8 | grep maintitle | cut -d '>' -f 4 | cut -d '<' -f 1 | sed 's/\//_/g'`
|
||||
@ -120,10 +125,49 @@ do
|
||||
else
|
||||
echo -ne ".скачан не BitTorrent-файл! После завершения работы скрипта проверьте файл $UNIXTIME-error.log — там будет ссылка на нескачанный топик!\n"
|
||||
echo -ne "Пишем информацию в лог-файл.."
|
||||
echo "Топик $THREAD: $TOPICHDR [https://nnm-club.ru/forum/$TOPICLNK]" >> $CURDIR/$UNIXTIME-error.log
|
||||
echo "Топик $THREAD: ошибка скачивания $TOPICHDR [https://nnm-club.ru/forum/$TOPICLNK]" >> $CURDIR/$UNIXTIME-error.log
|
||||
rm "$(($THREAD / 100 ))"/$THREAD.torrent
|
||||
fi
|
||||
fi
|
||||
echo -ne "."
|
||||
# Check sanity: torrents must equal threads. If not -- post a warning ;)
|
||||
sanity_error () {
|
||||
echo -ne ".кажется, топик не отдал нам файла. После завершения работы скрипта проверьте $UNIXTIME-error.log — там будет ссылка на проблемный топик!\n"
|
||||
echo -ne "Пишем информацию в лог-файл.."
|
||||
echo "Топик $THREAD: подозрительный $TOPICHDR [https://nnm-club.ru/forum/$TOPICLNK]" >> $CURDIR/$UNIXTIME-error.log
|
||||
}
|
||||
actualize_delta () {
|
||||
# Actualizes delta between files count and expected count: when we switching
|
||||
# folder delta should be nulled!
|
||||
if [[ $(($THREAD / 100)) -gt $LAST_ERROR ]] ; then
|
||||
ERROR_DELTA=0
|
||||
else
|
||||
if [[ x$ERROR_DELTA == "x" ]] ; then
|
||||
ERROR_DELTA=0
|
||||
fi
|
||||
fi
|
||||
}
|
||||
add_delta () {
|
||||
# Adding delta
|
||||
LAST_ERROR=$(($THREAD / 100))
|
||||
ERROR_DELTA=$(($ERROR_DELTA + 1))
|
||||
}
|
||||
actualize_delta
|
||||
if [[ $(($THREAD / 100)) -eq '0' ]] ; then
|
||||
if [[ `ls $(($THREAD / 100))/*.torrent | wc -l` -eq $(($THREAD - $(($THREAD / 100 * 100)) - $ERROR_DELTA)) ]] ; then
|
||||
echo -ne ""
|
||||
else
|
||||
sanity_error
|
||||
add_delta
|
||||
fi
|
||||
else
|
||||
if [[ `ls $(($THREAD / 100))/*.torrent | wc -l` -eq $(($THREAD - $(($THREAD / 100 * 100)) + 1 - $ERROR_DELTA)) ]] ; then
|
||||
echo -ne ""
|
||||
else
|
||||
sanity_error
|
||||
add_delta
|
||||
fi
|
||||
fi
|
||||
echo -ne ".\n"
|
||||
popd >> /dev/null
|
||||
done < $TMPDIR/alllinkz.txt
|
||||
|
Loading…
Reference in New Issue
Block a user