From f73dd02c7d3419b375e5d695b70ae7addb685253 Mon Sep 17 00:00:00 2001 From: skybldev Date: Mon, 29 Nov 2021 13:41:03 -0500 Subject: [PATCH] server: attempt to use DateTimeOriginal - [server] attempt to use DateTimeOriginal in `func/metadata.py` to resolve date taken (compatibility issue originally found in photo taken on LG Optimus L90) --- server/szurubooru/func/metadata.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/server/szurubooru/func/metadata.py b/server/szurubooru/func/metadata.py index 00dea853..16d87ca8 100644 --- a/server/szurubooru/func/metadata.py +++ b/server/szurubooru/func/metadata.py @@ -9,9 +9,17 @@ from exif import Image def resolve_image_date_taken(content: bytes) -> Optional[datetime]: img = Image(content) - if img.has_exif and "datetime" in img.list_all(): - return datetime.strptime(img.datetime, "%Y:%m:%d %H:%M:%S") - return None + if img.has_exif: + if "datetime" in img.list_all(): + resolved = img.datetime + elif "datetime_original" in img.list_all(): + resolved = img.datetime_original + else: + return None + + return datetime.strptime(resolved, "%Y:%m:%d %H:%M:%S") + else: + return None def resolve_video_date_taken(content: bytes) -> Optional[datetime]: