From b33fb4d2d6db0496e202c15d0f4d8c815b4a41af Mon Sep 17 00:00:00 2001 From: surtur Date: Mon, 6 Apr 2020 05:21:02 +0200 Subject: [PATCH] added apod download script * largely based on https://gist.github.com/mtking2/c38948f731d9017fee4edb36667c2a70 --- bin/apod | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100755 bin/apod diff --git a/bin/apod b/bin/apod new file mode 100755 index 0000000..fb75d5c --- /dev/null +++ b/bin/apod @@ -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"