profile-pictures/Avatars/Current Gravatar/fetch.py

33 lines
1014 B
Python
Raw Normal View History

2024-07-17 13:34:16 -05:00
# Script to grab the current Gravatar image for a given email address
import hashlib
import requests
2024-09-05 01:44:58 -05:00
import sys
from PIL import Image
2024-07-17 13:34:16 -05:00
# allow script to receive an argument
email_input = sys.argv[1]
2024-07-17 13:34:16 -05:00
def hash_email(email):
return hashlib.sha256(email.encode('utf-8')).hexdigest()
def fetch_gravatar(email, size=1000, rating="g"):
2024-07-17 13:34:16 -05:00
url = f"https://www.gravatar.com/avatar/{hash_email(email)}?s={size}&r={rating}"
print(url)
response = requests.get(url)
return response.content
def save_gravatar(email, size=1000, rating="g"):
with open(f"gravatar-{size}.png", "wb") as f: # Use "wb" mode for binary write
f.write(fetch_gravatar(email, size))
2024-09-05 01:44:58 -05:00
2024-07-17 13:34:16 -05:00
def convert_to_webp(size=1000):
im = Image.open(f"gravatar-{size}.png")
im.save(f"gravatar-{size}.webp")
2024-09-05 01:44:58 -05:00
def variety_of_sizes(email, sizes=[1000, 1500, 800, 300, 200, 150, 100]):
2024-07-17 13:34:16 -05:00
for x in sizes:
save_gravatar(email, size=x)
convert_to_webp(size=x)
if __name__ == '__main__':
2024-09-05 01:44:58 -05:00
variety_of_sizes(email_input)