From 59f843b8bdfe50a0d7a4c4ef049418feb18051e3 Mon Sep 17 00:00:00 2001 From: Colin Powell Date: Tue, 21 Jan 2020 08:31:59 -0500 Subject: [PATCH] Update wallpaper download jobs to be idempotent --- bin/.bin/changepaper.sh | 105 ++++++++++++++++++---------------- bin/.bin/get_astrobin_potd.py | 12 +++- jobber/.jobber | 4 +- 3 files changed, 68 insertions(+), 53 deletions(-) diff --git a/bin/.bin/changepaper.sh b/bin/.bin/changepaper.sh index 2c531e2..1a4f300 100755 --- a/bin/.bin/changepaper.sh +++ b/bin/.bin/changepaper.sh @@ -5,63 +5,72 @@ # Last Revised 22 May 2019 ####################### -#Change directory to where the script resides. +# For feh, we need display set properly export DISPLAY=:0.0 -BASEDIR="$HOME/var/inbox/ng_photos" -cd $BASEDIR -####################### -#getting the image URL -img="$(curl https://www.nationalgeographic.com/photography/photo-of-the-day/ -s | grep -oP '(?<="twitter:image:src" content=")\K[^"]*')" - -#check to see if there is any wallpaper to download -if [ -n "$img" ] -then - img_base=`echo $img | cut -d/ -f 5` - img_md5=`echo -n $img_base | md5sum | cut -f1 -d" "` - img_file="$img_md5.jpg" - - curl "$img" > $img_file - #set the current image as wallpaper -# feh --bg-scale $BASEDIR/$img_md5.jpg -# #link slim background to new image -# rm /usr/share/slim/themes/default/background.jpg -# ln -s $BASEDIR/$img_md5.jpg /usr/share/slim/themes/default/background.jpg -else - echo "No Wallpaper today" -fi - -# Then grab our APOD image and store it for now -#Change directory to where the script resides. -BASEDIR="$HOME/var/inbox/apod_photos" -cd $BASEDIR -####################### - -#getting the image URL -img="$(curl https://api.nasa.gov/planetary/apod\?api_key=AdfgdnmmInYgpDMEq3ShMLKjJ7DZ7jyUcgLHWdgw | jq .hdurl | tr -d \")" - -#check to see if there is any wallpaper to download -if [ -n "$img" ] -then - img_file=`echo $img | cut -d/ -f 7 | tr -d \"` - curl $img > $img_file - #set the current image as wallpaper - #feh --bg-scale $BASEDIR/$img_file - ##link slim background to new image - #rm /usr/share/slim/themes/default/background.jpg - #ln -s $BASEDIR/$img_file /usr/share/slim/themes/default/background.jpg -else - echo "No Wallpaper today" -fi +# Get daily Astrobin PotD BASEDIR="$HOME/var/inbox/astrobin/" -# use python script to get astrobin iotd python3 ~/.bin/get_astrobin_potd.py date=$(date '+%Y-%m-%d') - #set the current image as wallpaper +#set the current image as wallpaper feh --bg-scale $BASEDIR/$date.jpg #link slim background to new image rm /usr/share/slim/themes/default/background.jpg ln -s $BASEDIR/$date.jpg /usr/share/slim/themes/default/background.jpg +echo "Background and slim wallpaper set using Astrobin PotD" + + +####### OLD Picture fetching for NatGeo and NASA APoD +####### + + +#Change directory to where the script resides. +#BASEDIR="$HOME/var/inbox/ng_photos" +#cd $BASEDIR +####################### + +#getting the image URL +#img="$(curl https://www.nationalgeographic.com/photography/photo-of-the-day/ -s | grep -oP '(?<="twitter:image:src" content=")\K[^"]*')" +# +## Check to see if there is any wallpaper to download +#if [ -n "$img" ] +#then +# img_base=`echo $img | cut -d/ -f 5` +# img_md5=`echo -n $img_base | md5sum | cut -f1 -d" "` +# img_file="$img_md5.jpg" +# +# curl "$img" > $img_file +# #set the current image as wallpaper +# #feh --bg-scale $BASEDIR/$img_md5.jpg +# ##link slim background to new image +# #rm /usr/share/slim/themes/default/background.jpg +# #ln -s $BASEDIR/$img_md5.jpg /usr/share/slim/themes/default/background.jpg +#else +# echo "No Wallpaper today" +#fi + +# Then grab our APOD image and store it for now +#Change directory to where the script resides. +#BASEDIR="$HOME/var/inbox/apod_photos" +#cd $BASEDIR +######################## +# +## Get the APoD image from NASA +#img="$(curl https://api.nasa.gov/planetary/apod\?api_key=AdfgdnmmInYgpDMEq3ShMLKjJ7DZ7jyUcgLHWdgw | jq .hdurl | tr -d \")" +# +##check to see if there is any wallpaper to download +#if [ -n "$img" ] +#then +# img_file=`echo $img | cut -d/ -f 7 | tr -d \"` +# curl $img > $img_file +# #set the current image as wallpaper +# #feh --bg-scale $BASEDIR/$img_file +# ##link slim background to new image +# #rm /usr/share/slim/themes/default/background.jpg +# #ln -s $BASEDIR/$img_file /usr/share/slim/themes/default/background.jpg +#else +# echo "No Wallpaper today" +#fi diff --git a/bin/.bin/get_astrobin_potd.py b/bin/.bin/get_astrobin_potd.py index 34ac5f6..4b108ad 100755 --- a/bin/.bin/get_astrobin_potd.py +++ b/bin/.bin/get_astrobin_potd.py @@ -1,8 +1,17 @@ #!/usr/bin/env python3 +import os from datetime import datetime import requests import subprocess +today = datetime.today().strftime("%Y-%m-%d") +target_path = f"/home/powellc/var/inbox/astrobin/{today}.jpg" + +# If the file for today already exists, just exit +if os.path.isfile(target_path): + print(f"Astrobin image for {today} already exists, skipping download") + exit() + root = "https://www.astrobin.com" api_key = "3f542cbb23407bde6f20490f377366582dd1a54c" api_secret = ( @@ -20,9 +29,6 @@ r = requests.get( image_uri = r.json()["url_real"] img = requests.get(image_uri, stream=True) -today = datetime.today().strftime("%Y-%m-%d") -target_path = f"/home/powellc/var/inbox/astrobin/{today}.jpg" - handle = open(target_path, "wb") for chunk in img.iter_content(chunk_size=512): if chunk: # filter out keep-alive new chunks diff --git a/jobber/.jobber b/jobber/.jobber index 50667ac..5a4bb09 100644 --- a/jobber/.jobber +++ b/jobber/.jobber @@ -9,9 +9,9 @@ prefs: maxHistories: 2 jobs: - WallpaperUpdate: + CheckForNewWallpaper: cmd: /home/powellc/.bin/changepaper.sh - time: 0 0 10 + time: 0 */30 onError: Stop notifyOnFailure: - *filesystemSink