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
  }