From c066d11eb1c62021a980ec1535b7c8fde0bbf9a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adeodato=20Sim=C3=B3?= Date: Sun, 15 Oct 2023 19:49:00 -0300 Subject: [PATCH] Bugfix: default missing date components to 1, not today's Fixes: #2660. --- bookwyrm/models/import_job.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/bookwyrm/models/import_job.py b/bookwyrm/models/import_job.py index 8329ee955..f5d86ad2e 100644 --- a/bookwyrm/models/import_job.py +++ b/bookwyrm/models/import_job.py @@ -1,4 +1,5 @@ """ track progress of goodreads imports """ +from datetime import datetime import math import re import dateutil.parser @@ -260,17 +261,14 @@ class ImportItem(models.Model): return None def _parse_datefield(self, field, /): - if self.normalized_data.get(field): - parsed_date_added = dateutil.parser.parse( - self.normalized_data.get(field) - ) + if not (date := self.normalized_data.get(field)): + return None - if timezone.is_aware(parsed_date_added): - # Keep timezone if import already had one - return parsed_date_added + defaults = datetime(1970, 1, 1) # "2022-10" => "2022-10-01" + parsed = dateutil.parser.parse(date, default=defaults) - return timezone.make_aware(parsed_date_added) - return None + # Keep timezone if import already had one, else use default. + return parsed if timezone.is_aware(parsed) else timezone.make_aware(parsed) @property def date_added(self):