nasapod 963 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/usr/bin/env bash
  2. _haz() {
  3. command -v "$1" > /dev/null 2>&1
  4. }
  5. _haz gm && convert="gm convert"
  6. _haz convert && convert=convert
  7. test -z "$convert" && exit 1
  8. ! _haz wget && exit 1
  9. ! _haz curl && exit 1
  10. ! _haz grep && exit 1
  11. ! _haz xrandr && exit 1
  12. ! _haz awk && exit 1
  13. DATE="${1:-today}"
  14. page="https://apod.nasa.gov/apod/"
  15. subpage="ap$(date '+%y%m%d' --date="$DATE").html"
  16. url="${page}${subpage}"
  17. base_dir="$HOME/Pictures/nasa/"
  18. wallpapers="$HOME/.wallpaper/"
  19. img_name="$(date '+%Y%m%d' --date="$DATE")_nasa_pod.jpg"
  20. monitor_size=$(xrandr -q | awk -F',' 'NR==1 {split($2, a, " "); print a[2]"x"a[4]}')
  21. img=$(curl -s "$url" | awk '/jpg/ {split($0, a, "\""); print a[2]; exit}')
  22. mkdir -p "$base_dir"
  23. mkdir -p "$wallpapers"
  24. if [[ "$img" == http* ]]; then
  25. wget -O "${base_dir}${img_name}" "${img}" --quiet
  26. else
  27. wget -O "${base_dir}${img_name}" "${page}${img}" --quiet
  28. fi
  29. $convert "${base_dir}${img_name}" -resize $monitor_size "${wallpapers}${img_name}"