From 1e851f7061a0ec1084cb0699f7e09f075de0c1ef Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Thu, 13 Jul 2023 07:48:46 -0700 Subject: [PATCH] Fix two issues in new-photo-post.py - Strip typographic quotes from input to slugify() - Fall back on a floating timestamp if no timezone is given --- scripts/new-photo-post.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/scripts/new-photo-post.py b/scripts/new-photo-post.py index b3b9c14..60f059e 100755 --- a/scripts/new-photo-post.py +++ b/scripts/new-photo-post.py @@ -17,7 +17,7 @@ from PIL.ExifTags import TAGS PHOTOS_CONTENT_DIR = 'content/photos' def slugify(s): - return re.sub(r'\s+', '-', s.strip().lower()) + return re.sub(r'[‘’“”]', '', re.sub(r'\s+', '-', s.strip().lower())) def parse_args(argv, *a, **kw): parser = argparse.ArgumentParser(*a, **kw) @@ -42,8 +42,12 @@ def main(argv): raw_exif = image._getexif() friendly_exif = {TAGS[k]: v for k, v in raw_exif.items() if k in TAGS} - date_string = f'{friendly_exif["DateTime"]} {friendly_exif["OffsetTime"]}' - exif_date = datetime.datetime.strptime(date_string, '%Y:%m:%d %H:%M:%S %z') + try: + date_string = f'{friendly_exif["DateTime"]} {friendly_exif["OffsetTime"]}' + exif_date = datetime.datetime.strptime(date_string, '%Y:%m:%d %H:%M:%S %z') + except KeyError: + exif_date = datetime.datetime.strptime(friendly_exif["DateTime"], '%Y:%m:%d %H:%M:%S') + print(f'{photo} -> {exif_date.isoformat()}') if not earliest_exif_date or exif_date < earliest_exif_date: