9
мая
Раньше использовал flexget для скачивания сериалов с lostfilm по rss, но из-за того что он работал крайне не стабильно(то скачивал то не скачивал торрент, то скачивал но только через пару часов и т.п.) набросал скрипт для скачивания и разбора rss ленты и скачиванию торрент-файлов нужных раздач сериалов.
Скрипт писался на основе множества существующих вариантов с моими доработками.
Особенности:
1. Скачиваются только заданные сериалы, можно задавать качество.
2. Отправка почтового уведомления.
3. Скачиватся в указанную папку для каждого конкретного сериала.
Для работы требуется поставить дополнительные пакеты:
xmlstarlet - для разборки xml
msmtp msmtp-mta - для отправки почты
deluge-console - для добавления в торрент-клиент делуже задания для скачивания
Список сериалов указывается в виде:
SERIAL['File.name']="Название директории для скачивания"
#!/bin/bash
# apt-get install xmlstarlet msmtp msmtp-mta deluge-console
declare -A SERIAL
SERIAL['12.Monkeys']="12 Обезьян"
SERIAL['Vikings']="Викинги"
SERIAL['Gotham']="Готэм"
SERIAL['Game.of.Thrones']="Игра престолов"
SERIAL['Under.the.Dome']="Под куполом"
SERIAL['Extant']="Род человеческий"
SERIAL['Falling.Skies']="Сошедшие с небес"
SERIAL['Arrow']="Стрела"
SERIAL['The.Flash']="Флэш"
SERIAL['The.Walking.Dead']="Ходячие мертвецы"
#############################################
rssEval () { # $1 = rsseval; $2 = file;
xmlstarlet sel -T -t -m "$1" -v . -n "$2"
}
#############################################
DIR=`dirname $0`
cd $DIR
[ !$DIR/torrents ] && mkdir -p $DIR/torrents ||:
MEDIA=/media/Сериалы/
lastmod="$( grep -m 1 Last-Modified lostfilm.out )"
header="If-Modified-Since:"${lastmod#*:}
wget --header="$header" http://www.lostfilm.tv/rssdd.xml -o lostfilm.out -O rssdd.xml
for s in "${!SERIAL[@]}"; do
rssEval "/rss/channel/item/link[contains(., '$s')]" rssdd.xml | egrep "\.avi" | while read LINK; do
NAME="${LINK#*&}"
FILE="torrents/$NAME"
if [ ! -e $FILE ]; then
wget -q --header "Cookie: uid=XXXXXXXXX; pass=XXXXXXXXXXXXXXX; usess=XXXXXXXXXXXXXXXXXX" $LINK -O "$FILE"
D_DIR=`echo -ne ${SERIAL[$s]} | sed 's/\ /\\\ /g'`
su - server -c "deluge-console add -p '$MEDIA/$D_DIR' '$DIR/$FILE'"
SERIYA=`rssEval "rss/channel/item[contains(., '${NAME}')]/title" rssdd.xml`
echo -e "Subject: ${SERIAL[$s]}\r\n\r\n$SERIYA" | msmtp MAIL@mail.com
fi
done
done
Писалось и проверено на Ubuntu 14.04
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.