google-photo-to-vcard/google_photo_to_vcard/util.py

41 lines
1021 B
Python

import json
import logging
import urllib.request as request
from urllib.error import HTTPError
from hashlib import md5
EMAIL_TO_PHOTO_JSON_PATH = 'build/email_to_photo.json'
def write_email_photo_json(email_to_photo):
with open(EMAIL_TO_PHOTO_JSON_PATH, 'w') as f:
f.write(json.dumps(email_to_photo))
def read_email_photo_json():
with open(EMAIL_TO_PHOTO_JSON_PATH, 'r') as f:
return json.loads(f.read())
def build_photo_path(email):
return 'build/photos/{}.jpeg'.format(email.lower())
def download_url_to_path(url, path):
try:
with request.urlopen(url) as r:
with open(path, mode='xb') as f:
f.write(r.read())
return path
except HTTPError as e:
logging.error(e)
return None
def generate_gravatar_url(email, size=200, default='404'):
email_hash = md5(email.lower().encode('utf-8')).hexdigest()
return 'https://www.gravatar.com/avatar/{}?s={}&d={}'.format(
email_hash, str(size), default
)