OpenWrt/Užitečné skripty/Stahování souborů/Stahování z Rapidshare.com
Pokud chceme stahovat soubor z rapidshare.com musíme provést několik kroků. Nejprve stáhneme úvodní stránku, z které zjistíme, zda je vůbec můžeme začít stahovat. Na druhé straně, po kliknutí na tlačítko Free musíme nejprve počkat dvě a půl minuty a pak opsat čtyřmístný alfanumerický kód abychom mohli začít stahovat soubor. Obrázek s kódem je k dispozici již před čekáním zasílá se elektronickou poštou a alfanumerický kód se získá po čekání ze souboru nebo z došlé pošty. Dobu čekání je možné i prodloužit. Skript vrací chybové kódy, při kódu 0 proběhlo vše v pořádku, při kódech menších než 100 nemá smysl stahování opakovat (např. soubor nenalezen), ale pokud je kód větší než 100 má opakování stahování smysl (např. špatně zadaný kód). Na konci stahování se zašle poštovní zpráva s informacemi o proběhlém stahování.
Soubor separator
obsahuje libovolný řetězec sloužící k oddělení jednotlivých sekcí logu.
Příkaz rmshorter smaže všechny soubory menší než zadaný počet bajtů.
#!/bin/sh
PART=/mnt/disc0_1
DEST=$PART/dls
CURL=/opt/bin/curl
WGET=/opt/bin/wget
FETCHMAIL=/opt/bin/fetchmail
MDIR=~/Mail/new
DOWNLOAD=$1
MAXU=89
MUTT=/opt/bin/mutt
RECP=user@gmail.com
TMP=~/rapidshare/tmp
LOG=$TMP/rapget.log
MAILBODY=$TMP/mailbody
ERROR=0
mailexit () {
echo Done with errorcode: $ERROR >> $LOG
ls -l $DEST | cat - separator > $MAILBODY
df | cat - separator $LOG separator >> $MAILBODY
$MUTT -s "Rapget.log-$(date)" -a $LOG -a code.jpg -a code.txt $RECP < $MAILBODY
exit $ERROR
}
mkdir -p $TMP
rm -f $LOG
[[-z $1]] && {
echo "No parameter, exiting ..." >> $LOG
ERROR=1 ; mailexit
}
USAGE=$(df | grep "$PART" | grep -o -e "[0-9][0-9]*%" | grep -o -e "[0-9]*")
[[$USAGE -gt $MAXU]] && {
echo "No free space, $USAGE percent used, exiting ..." >> $LOG
ERROR=2 ; mailexit
}
echo Downloading: $DOWNLOAD >> $LOG
echo $DOWNLOAD | grep .html$ || DOWNLOAD=$DOWNLOAD.html
echo $DOWNLOAD | grep ^http://www || DOWNLOAD=$(echo $DOWNLOAD | sed 's/rapidshare/www.rapidshare/')
SHORTDOWNLOAD=${DOWNLOAD%.html}
NAME=$(echo $DOWNLOAD | grep -o [a-zA-Z0-9._-]*\.html$ )
SHORTNAME=${NAME%.html}
./rmshorter 99999 $DEST
ls $DEST | grep $SHORTNAME && {
echo "File already exists in destination folder, exiting ..." >> $LOG
ERROR=3 ; mailexit
}