Преглед изворни кода

Update wallpaper download jobs to be idempotent

Colin Powell пре 5 година
родитељ
комит
59f843b8bd
3 измењених фајлова са 68 додато и 53 уклоњено
  1. 57 48
      bin/.bin/changepaper.sh
  2. 9 3
      bin/.bin/get_astrobin_potd.py
  3. 2 2
      jobber/.jobber

+ 57 - 48
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

+ 9 - 3
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

+ 2 - 2
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