X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=autodlctl;h=1d0cdc1c4e1b8859eeb65778c61dd250cebf8701;hb=58a2c6842929a5fd3554516fcb4bfc6a23666b21;hp=38d1702341ac3f299163efe065b4c2d1ce61884b;hpb=aba77738f8a80e1bcee0cd8832fb8b3fadfbe2f1;p=utils.git diff --git a/autodlctl b/autodlctl index 38d1702..1d0cdc1 100755 --- a/autodlctl +++ b/autodlctl @@ -11,12 +11,6 @@ function getnext read curep <"$d/.autodl/badlist" echo "downloading bad files, curep $curep" epfrom=badlist - badsizesl="$(sed -n "s/^$curep \(.*\)$/\1/p" "$d/.autodl/badsizes")" - if [ -n "$badsizesl" ]; then - read -a badsizes <<<"$badsizesl" - unset badsizesl - echo "found bad size list: ${badsizes[@]}" - fi elif [ -r "$d/.autodl/curep" ]; then curep="`cat "$d/.autodl/curep"`" echo "downloading series, curep $curep" @@ -26,6 +20,15 @@ function getnext echo "$tag" >>"$HOME/dc/autodl/faulty" return 1 fi + unset badsizesl + if [ -r "$d/.autodl/badsizes" ]; then + badsizesl="$(sed -n "s/^0*$curep \(.*\)$/\1/p" "$d/.autodl/badsizes")" + fi + if [ -n "$badsizesl" ]; then + read -a badsizes <<<"$badsizesl" + unset badsizesl + echo "found bad size list: ${badsizes[@]}" + fi unset args fsexpr="`printf "$sexpr" "$curep"`" if [ "${#badsizes[@]}" -gt 0 ]; then @@ -33,7 +36,8 @@ function getnext fsexpr="$fsexpr & ! S=$badsize" done fi - args=(-e "$fsexpr" -t "$tag $curep") + infofile="$d/.autodl/rtinfo" + args=(-e "$fsexpr" -t "$tag $curep" -I "$infofile") if [ -r "$d/.autodl/uarg" ]; then uarg="`cat "$d/.autodl/uarg"`" elif [ -e "$d/.autodl/autouarg" ]; then @@ -43,7 +47,7 @@ function getnext fuarg="`printf "$uarg" "$curep"`" args=("${args[@]}" -a "$fuarg") fi - outfile="`mktemp /tmp/autodlXXXXXX`" + outfile="$d/.autodl/output" echo "trying to download -- autodl ${args[@]}" intr=n autodl "${args[@]}" >"$outfile" 2>&1 & @@ -55,8 +59,16 @@ function getnext echo "$tag interrupted" else if [ "$stat" -ne 0 ]; then - echo "Failure for $tag" >>"$HOME/dc/autodl/errorlog" - tail -n 20 "$outfile" >>"$HOME/dc/autodl/errorlog" + if [ "$stat" -eq 1 ]; then + echo "Failure for $tag" >>"$HOME/dc/autodl/errorlog" + tail -n 20 "$outfile" >>"$HOME/dc/autodl/errorlog" + elif [ "$stat" -eq 2 ]; then + echo "Connection error on $tag" + elif [ "$stat" -eq 3 ]; then + echo "Configuration error, disabling $tag" + cp "$outfile" "$d/.autodl/conferr" + touch "$d/.autodl/disabled" + fi else echo "episode $curep of $tag done" case "$epfrom" in