#/bin/bash
# TODO use getopts: -v verbose (unless quiet)

if [ $# -eq 0 ];then
  cat <<EndHelp
Usage: $0 URL ...
EndHelp
else
  tmpdir=~/.`basename $0`/
  mkdir -p $tmpdir
  echo tmpdir $tmpdir
  cookies_base="$tmpdir/cookies"

  while [ $# -gt 0 ];do
    url1="$1"
    shift
    output1="$( wget -O - -q --keep-session-cookies --save-cookies="$cookies_base" "$url1" )"
    url2="$( echo "$output1" | perl -e '
        undef $/;
        $a=<STDIN>;
        print $1 if ($a=~m,href=["\x27](http://[^/]*uloz\.to/[a-f0-9]+/[a-f0-9]+/[^"\x27]+)["\x27],is);
      '
    )"
    echo "URL: $url2"

    # strip filename from url
    local_filename=${url2/*\/}
    echo "local_filename: '$local_filename'"


    cookies_file="$tmpdir/cookies_$local_filename"
    echo "cookies file: '$cookies_file'"

    # move cookies to right file
    mv $cookies_base $cookies_file

    if [ -n "$url2" ];then
      wget -c --load-cookies="$cookies_file" --referer="$url1" "$url2" -O $local_filename
    else
      echo "FAILED"
      exit 1
    fi
  done
  rm -rf "$tmpdir"
fi
