Skip to content

Instantly share code, notes, and snippets.

@vwillcox
Created June 5, 2019 08:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vwillcox/7e6dabf3bfae819af92b1cb2aabd77d6 to your computer and use it in GitHub Desktop.
Save vwillcox/7e6dabf3bfae819af92b1cb2aabd77d6 to your computer and use it in GitHub Desktop.
Take the Nasa AOD. add a sprinkling of Toast and a Pillow and you have a script that changes your desktop daily and adds the caption to the bottom. Thanks to : https://bigl.es/tooling-tuesday-nasa-api-and-python/
import os
import requests
import ctypes
from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw
from win10toast import ToastNotifier
url = "https://api.nasa.gov/planetary/apod?api_key="
os.environ['NO_PROXY'] = 'nasa.gov'
r = requests.get(url)
toaster = ToastNotifier()
def drawTextWithOutline(text, x, y):
draw.text((x-2, y-2), text,(0,0,0),font=font)
draw.text((x+2, y-2), text,(0,0,0),font=font)
draw.text((x+2, y+2), text,(0,0,0),font=font)
draw.text((x-2, y+2), text,(0,0,0),font=font)
draw.text((x, y), text, (255,255,255), font=font)
return
if r:
APOD = r.json()['hdurl']
title = r.json()['title']
detail = r.json()['explanation']
pic = requests.get(APOD, allow_redirects=True)
if "jpg" not in APOD:
print("No image")
else:
open('C:\\Users\\vincent.willcox\\Pictures\\APOD.jpg', 'wb').write(pic.content)
img = Image.open('C:\\Users\\vincent.willcox\\Pictures\\APOD.jpg')
draw = ImageDraw.Draw(img)
font = ImageFont.truetype('GrabsteinHandSchrift.otf', 100)
font2 = ImageFont.truetype('GrabsteinHandSchrift.otf', 10)
w, h = draw.textsize(title, font)
drawTextWithOutline(title, img.width/2 - w/2, img.height-100)
img.save('C:\\Users\\vincent.willcox\\Pictures\\APOD.jpg')
ctypes.windll.user32.SystemParametersInfoW(20, 0, "C:\\Users\\vincent.willcox\\Pictures\\APOD.jpg" , 0)
toaster.show_toast(title, detail, icon_path=None, duration=10, threaded=True)
print("DONE")
else:
print("Error")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment