added apod download script
* largely based on https://gist.github.com/mtking2/c38948f731d9017fee4edb36667c2a70
This commit is contained in:
parent
d7738fb280
commit
b33fb4d2d6
83
bin/apod
Executable file
83
bin/apod
Executable file
@ -0,0 +1,83 @@
|
||||
#!/bin/bash
|
||||
# apod.sh largely based on
|
||||
# https://gist.github.com/mtking2/c38948f731d9017fee4edb36667c2a70
|
||||
|
||||
http_proxy=""
|
||||
|
||||
green="\033[32m"
|
||||
white="\033[0m"
|
||||
blue="\033[34m"
|
||||
|
||||
path="$HOME/.cache/apod"
|
||||
|
||||
mkdir -p $path
|
||||
rm -f $path/*.html
|
||||
echo -e "$(date "+%Y-%m-%d %H:%M:%S") get apod started ${green}✓${white}"
|
||||
wget -q https://apod.nasa.gov/apod/ap$(date +%y%m%d).html --content-on-error -P $path
|
||||
index=$(find $path -type f -name "*.html")
|
||||
echo -e "${blue}try \"\$(grep -i \"IMG SRC=\" $index | cut -d\\\" -f2)\":${white} $(grep -i "IMG SRC=" $index || echo "is null")"
|
||||
echo -e "${blue}try \"\$(grep -i \"a href=\"image\" $index | cut -d\\\" -f2)\":${white} $(grep -i "a href=\"image" $index || echo "is null")"
|
||||
|
||||
get_img() {
|
||||
img="$(grep -i "a href=\"image" $index | cut -d\" -f2 | head -1 | xargs)"
|
||||
if [[ -z "$img" ]]; then
|
||||
img="$(grep -i "IMG SRC=" $index | cut -d\" -f2 | head -1 | xargs)"
|
||||
fi
|
||||
}
|
||||
get_img
|
||||
|
||||
# sometimes the APOD is an iframe containing a video/flash/js element
|
||||
# this condition should detect the absence of an image and use the previous APOD
|
||||
if [[ -z "$img" ]]; then
|
||||
yesterday="https://apod.nasa.gov/apod/ap$(date --date yesterday +%y%m%d).html"
|
||||
echo -e "${blue}Using yesterday's image:${white} $yesterday"
|
||||
wget -q $yesterday -O $index
|
||||
get_img
|
||||
fi
|
||||
|
||||
img_name="$(echo "$img" | grep image | head -1 | cut -d\/ -f3)"
|
||||
|
||||
# deal with external images
|
||||
if [[ $img =~ ^https?://.*$ ]]; then
|
||||
url=$img
|
||||
else
|
||||
url="https://apod.nasa.gov/apod/$img"
|
||||
fi
|
||||
|
||||
apod_title=$(grep "APOD:" $index | sed 's/<\/\?[^>]\+>//g' | sed 's/ APOD: //' | head -1)
|
||||
if [[ "$apod_title" =~ ^Astronomy.*$ ]]; then
|
||||
apod_title=$(echo $img_name | sed 's/....$//' )
|
||||
fi
|
||||
apod_date=$(grep "^$(date +%Y\ %B)" $index | xargs | head -1 | sed 's/ /-/g')
|
||||
|
||||
echo -e "${blue}path:${white} $path"
|
||||
echo -e "${blue}apod_title:${white} $apod_title"
|
||||
echo -e "${blue}img:${white} $img"
|
||||
echo -e "${blue}img_name:${white} "$img_name""
|
||||
echo -e "${blue}url:${white} $url"
|
||||
echo -e "${blue}apod_date:${white} $apod_date"
|
||||
|
||||
filename=$(echo $apod_title | xargs | sed 's/- //g' | sed "s/ /-/g").jpg
|
||||
|
||||
wget -q $url -O "$path/$filename"
|
||||
|
||||
# GNOME
|
||||
# possible values for gsettings: "wallpaper", "centered", "scaled", "stretched", "zoom", "spanned"
|
||||
# gsettings set org.gnome.desktop.background picture-uri "File://$path/wallpaper.jpg"
|
||||
# gsettings set org.gnome.desktop.background picture-options zoom
|
||||
|
||||
# Cinnamon
|
||||
#gsettings set org.cinnamon.desktop.background picture-uri "file://$path/$apod_date-$short_title-$img_name"
|
||||
# gsettings set org.cinnamon.desktop.background picture-uri "file://$path/$filename"
|
||||
# gsettings set org.cinnamon.desktop.background picture-options scaled
|
||||
|
||||
# Xfce
|
||||
# xfconf-query --channel xfce4-desktop --property /backdrop/screen0/monitor0/image-path --set $path/wallpaper.jpg
|
||||
|
||||
# feh
|
||||
# feh --bg-scale $path/wallpaper.jpg
|
||||
|
||||
xdg-open "$path/$filename" 2>&1 >/dev/null &
|
||||
rm -f $index
|
||||
echo -e "$(date "+%Y-%m-%d %H:%M:%S") done ${green}✓${white}" && \
|
||||
notify-send -u critical -i ~/.icons/Flat-Remix-Blue-Dark/apps/scalable/weather-widget.svg "apod just changed ✓" "...to $apod_title"
|
Loading…
Reference in New Issue
Block a user