Ну в общем получилось у меня что-то подобное.
Названия сериалов берутся из текстовика, который лежит рядом с самим скриптом. Если нужно где-то указывать куки и т.д., то они прописываются в переменных - так их проще будет потом менять.
Пока написал три штуки, под три разных трекера. Из скриптов, думаю, будет понятно что для чего
#!/bin/bash
tor_list=/root/parsers/anidub.txt
cook_uid="dle_user_id=***"
cook_pwd="dle_password=***"
echo "anidub -- $(date)" >> /root/parsers/lastrun.log
lastline=`tail -c 1 ${tor_list}`
if [ "$lastline" != "" ]; then
echo "" >> ${tor_list}
fi
if [ -s ${tor_list} ]; then
cat ${tor_list} | while IFS= read -r line
do
curl -s http://tr.anidub.com/rss.xml | grep -iA 2 "title" | grep -iA 2 "${line}" > /dev/null 2>&1
if [ $? -eq "0" ]; then
page_link=$(curl -s http://tr.anidub.com/rss.xml \
| grep -iA 2 "title" \
| grep -iA 2 "${line}" \
| grep "link" \
| grep -io "http.*.html")
tor_link=$(curl -sb "${cook_uid}; ${cook_pwd}" ${page_link} \
| grep -iA 2 tv720 \
| grep -ie 'Скачать торрент' \
| grep --max-count 1 -ioE '/engine/download\.php\?id=[0-9]{1,5}' \
| tail -n 1)
tor_name=$(curl -sb "${cook_uid}; ${cook_pwd}" ${page_link} \
| grep -ie 'Имя файла' \
| grep -i '720' \
| grep -ioE 'title=\"[AniDub].*.torrent\"' \
| sed 's/[/\[/g' \
| sed 's/]/\]/g' \
| grep -ioe '\[.*.torrent')
if [ ! -e /root/parsers/torrent/anime/${tor_name}.added ]; then
curl -s --cookie "${cook_uid}; ${cook_pwd}" \
--referer ${page_link} \
--user-agent "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0" \
--output /root/parsers/torrent/anime/${tor_name} \
http://tr.anidub.com${tor_link}
fi
fi
done
fi
#!/bin/bash
tor_list=/root/parsers/anifilm.txt
echo "anifilm -- $(date)" >> /root/parsers/lastrun.log
lastline=`tail -c 1 ${tor_list}`
if [ "$lastline" != "" ]; then
echo "" >> ${tor_list}
fi
if [ -s ${tor_list} ]; then
cat ${tor_list} | sed -e 's/ /-/g' | while IFS= read -r line
do
curl -s http://anifilm.tv/rss.xml | grep -iE "${line}" > /dev/null 2>&1
if [ $? -eq "0" ]; then
page_link=$(curl -s http://anifilm.tv/rss.xml \
| grep -ioE "http:\/\/anifilm.tv\/releases\/(a-z|\w|-)*" \
| uniq \
| grep -iE "${line}")
tor_link=$(curl -s ${page_link} \
| grep -iA 20 "Список торрентов" \
| grep -iA 3 "720" \
| grep -ioE "\/releases/download-torrent/[0-9]{1,4}")
tor_name=$(curl -s ${page_link} \
| grep -m 1 "Аниме" \
| grep -ioE "Аниме [a-zA-Z].* \/ " \
| cut -c 12- \
| sed 's/Аниме //g' \
| sed 's/ \/ //g' \
| sed -e 's/ /_/g')
tor_num=$(curl -s ${page_link} \
| grep -m 1 "Аниме" \
| grep -ioE "[0-9]{1,3}\-[0-9]{1,3}")
tor_from=$(curl -s ${page_link} \
| grep -m 1 "Аниме" \
| grep -ioE "из [0-9]{1,3}" \
| cut -c 6-)
full_name=${tor_name}_${tor_num}_from_${tor_from}.torrent
wget -nc http://anifilm.tv${tor_link} -O /root/parsers/torrent/${full_name}
fi
done
#!/bin/bash
tor_list=/root/parsers/newstudio.txt
echo "newstudio -- $(date)" >> /root/parsers/lastrun.log
lastline=`tail -c 1 ${tor_list}`
if [ "$lastline" != "" ]; then
echo "" >> ${tor_list}
fi
if [ -s ${tor_list} ]; then
cat ${tor_list} | while IFS= read -r line
do
curl -s http://newstudio.tv/rss.php | grep -A 1 "title" | grep -iA 1 "WEBDLRip" | grep -iA 1 "${line}" > /dev/null 2>&1
if [ $? -eq "0" ]; then
curl -s http://newstudio.tv/rss.php | grep -A 1 "title" | grep -iA 1 "WEBDLRip" | grep -iA 1 "${line}" | grep -ioE "http://.*[0-9]{1,5}" > /root/parsers/newstudio.tmp
for plink in $(cat /root/parsers/newstudio.tmp); do
tor_link=$(curl -s ${plink} | grep -ioE "download.php.*[0-9]{1,5}")
full_name=$(curl -s ${plink} | grep -ioE "[a-zA-Z].*\.torrent" | sed 's/&/\&/g')
if [ ! -e /root/parsers/torrent/${full_name}.added ]; then
wget -q http://newstudio.tv/${tor_link} -O /root/parsers/torrent/${full_name}
sleep 5
fi
done
fi
done
rm /root/parsers/newstudio.tmp > /dev/null 2>&1
fi
Линухом занимаюсь не так давно, так что в скриптах, вероятно, есть много костылей.
Тем не менее данный вариант вполне себе рабочий. Критится у меня на VDS, а потом через lftp заливается\синхронизируется с конкретной папкой на моём компе, откуда это уже и подбирает торрент.
Будут вопросы - спрашивай.