When adding new books if the timestamp is specified as undefined use the current timestamp. Fixes #2069494 ['Sometimes' timestamp column has incorrect data](https://bugs.launchpad.net/calibre/+bug/2069494)

This commit is contained in:
Kovid Goyal 2024-06-15 16:50:49 +05:30
parent 8f7b3308d3
commit dcc2078675
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -45,7 +45,7 @@ from calibre.ebooks.metadata.book.base import Metadata
from calibre.ebooks.metadata.opf2 import metadata_to_opf from calibre.ebooks.metadata.opf2 import metadata_to_opf
from calibre.ptempfile import PersistentTemporaryFile, SpooledTemporaryFile, base_dir from calibre.ptempfile import PersistentTemporaryFile, SpooledTemporaryFile, base_dir
from calibre.utils.config import prefs, tweaks from calibre.utils.config import prefs, tweaks
from calibre.utils.date import UNDEFINED_DATE, timestampfromdt, utcnow from calibre.utils.date import UNDEFINED_DATE, is_date_undefined, timestampfromdt, utcnow
from calibre.utils.date import now as nowf from calibre.utils.date import now as nowf
from calibre.utils.filenames import make_long_path_useable from calibre.utils.filenames import make_long_path_useable
from calibre.utils.icu import lower as icu_lower from calibre.utils.icu import lower as icu_lower
@ -2146,7 +2146,7 @@ class Cache:
book_id = self.backend.last_insert_rowid() book_id = self.backend.last_insert_rowid()
self.event_dispatcher(EventType.book_created, book_id) self.event_dispatcher(EventType.book_created, book_id)
mi.timestamp = utcnow() if mi.timestamp is None else mi.timestamp mi.timestamp = utcnow() if (mi.timestamp is None or is_date_undefined(mi.timestamp)) else mi.timestamp
mi.pubdate = UNDEFINED_DATE if mi.pubdate is None else mi.pubdate mi.pubdate = UNDEFINED_DATE if mi.pubdate is None else mi.pubdate
if cover is not None: if cover is not None:
mi.cover, mi.cover_data = None, (None, cover) mi.cover, mi.cover_data = None, (None, cover)