1

Handle login errors, handle torrents count mismatch

This commit is contained in:
Valdos Sine 2012-04-05 00:20:11 +04:00 committed by Vladimir Hodakov
parent 6108d9b22c
commit 762b36c0f2

View File

@ -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