/xkcd.sh

https://bitbucket.org/aweidner/bashxkcd · Shell · 48 lines · 39 code · 6 blank · 3 comment · 7 complexity · e29aa6a3573eca397c74aa4062f6c216 MD5 · raw file

  1. #!/bin/bash
  2. if [ $# -eq 1 ]; then
  3. #First check to see if we already have it
  4. yes=`ls | grep -o "${1}\.\(jpg\|png\)"`
  5. if [ `expr length $yes` -gt 0 ]; then
  6. echo 2
  7. exit
  8. fi
  9. #This means the user wants a specific comic
  10. wget -q "http://xkcd.com/${1}"
  11. if [ -f $1 ]; then
  12. image=`cat $1 | grep -o "http://imgs.xkcd.com/comics/[a-zA-Z1-9_()]\+\.\(jpg\|png\)" | head -1`
  13. wget -q $image
  14. file=${image:28}
  15. len=`expr length $image`
  16. t=${image:$len-4}
  17. if [ -f $file ]; then
  18. mv $file "${1}${t}"
  19. fi
  20. rm -f $1
  21. echo 0
  22. else
  23. echo 1
  24. fi
  25. else
  26. echo "Clearing directory, everything will be downloaded"
  27. counter=1
  28. e=`./xkcd.sh $counter`
  29. echo "Downloaded comic number ${counter}"
  30. while [ $e -ne 1 ]; do
  31. echo $e
  32. if [ $e -ne 2 ]; then
  33. sleep 5
  34. fi
  35. let counter=counter+1
  36. if [ $counter -eq 404 ]; then
  37. let counter=counter+1
  38. fi
  39. let e=`./xkcd.sh $counter`
  40. echo "Downloaded comic number ${counter}"
  41. done
  42. fi