LINUX.ORG.RU

удаление лишних торрент-закачек

 rutracker parser парсер


0

1

Каждое утро с рутрекера парсится 20 .torrent-файлов киношек с наибольшим количеством сидов, и ставится на закачку в aria2c. Может кому пригодится скрипт:

#!/bin/bash

TR_HOST="rutracker.org"
TR_USER="vasiliy"
TR_PASSWORD="pivo"

SC_COOKIE="/tmp/gt-$TR_HOST-$TR_USER.ck"
SC_UA="Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.2.15) Gecko/20110303 Ubuntu/10.10 (maverick) Firefox/3.6.15"


    echo "---Cheking auth"
    if [ -w $SC_COOKIE ]; then
	aut_page="`curl -b $SC_COOKIE  -c $SC_COOKIE -A "$SC_UA" "http://rutracker.org/forum/index.php"`"
#	echo "$aut_page" > aut_page.html
	result=`echo "$aut_page" | egrep -o "$TR_USER"`
    fi

sleep 1
echo "---$result";
if [ -z "$result" ]; then
    echo "---Makin auth";
    autpath="http://login.rutracker.org/forum/login.php";
    if [ -w $SC_COOKIE ]; then
	cookie_data=`cat $SC_COOKIE`
	curl --trace-ascii - -b $SC_COOKIE  -c $SC_COOKIE -A "$SC_UA" -d "login_username=$TR_USER" \
		-d "login_password=$TR_PASSWORD" --data-binary "login=%C2%F5%EE%E4"  "$autpath">/dev/null
    else
	curl --trace-ascii - -c $SC_COOKIE -A "$SC_UA" -d "login_username=$TR_USER" \
		-d "login_password=$TR_PASSWORD" --data-binary "login=%C2%F5%EE%E4"  "$autpath">123.html
    fi
fi

sleep 1
echo "get list_id"
tracker_page="`curl  -b $SC_COOKIE -c $SC_COOKIE -A "$SC_UA" -d "o=10" -d "s=2" 	"http://rutracker.org/forum/tracker.php"`"
echo "$tracker_page" > /tmp/tracker_page.html
#echo $tracker_page | xargs | iconv -t utf8 -f cp1251 | grep -P -o '<tr .*?</tr>' | egrep -i 'фильмы' | egrep -i 'проверено'
list_id=`echo "$tracker_page" | \
	tr -d "\n" | iconv -t utf8 -f cp1251 | \
	grep -P -o '<tr .*?</tr>' | egrep -i "Фильмы" | egrep -i "проверено" | \
	grep -P -o '(?<=dl.php\?t=)[0-9]*' | head -n 20`
echo -e "---List_id:\n$list_id";
if [ -z "$list_id" ]; then
	echo "--Parsing error!"
	exit
fi

rm -f /tmp/\[rutracker.org\]*
#rm -r /mnt/FILMS/*

for id in $list_id
do
echo "---Loading $id"
curl --cookie "bb_dl=$id" -b $SC_COOKIE -c $SC_COOKIE -A "$SC_UA" -o "/tmp/[rutracker.org].t$id.torrent"  \
        -e "http://rutracker.org/forum/viewtopic.php?t=$id" "http://dl.rutracker.org/forum/dl.php?t=$id"
done
#find /mnt/ALL/\!Софт/2GIS* | sort | sed -n 2,+99p | xargs rm -f
#curl -s irkutsk.2gis.ru | grep -P -o "http://download.2gis.ru/arhives/2GISShell.*?\.exe" | xargs wget -cP /mnt/ALL/\!Софт/


#screen -d -m -L 
aria2c --no-conf --seed-time=0 --bt-max-peers=5 -V -j20 -d /mnt/FILMS /tmp/\[rutracker.org\]*

cd /mnt/FILMS/
rm -f *.aria2
ls -t1 | sed -n 21,+99p | while read file; do rm -rf "$file"; done;

Чтобы удалять лишние фильмы я перед началом закачки сортирую по возрасту и удаляю файлы с 21-го:
ls -t1 | sed -n 21,+99p | while read file; do rm -rf "$file"; done;
Проблема в том, что удаляется и то, что можно было не удалять и вместо, например, 2 новых фильмов, которые сегодня утром появились в этом «топе», на закачку ставится(перекачивается) 4-5, я думаю вы уже поняли почему.
Как оптимизировать эту «синхронизацию»?



Последнее исправление: kuzyara (всего исправлений: 6)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.