Bugfix write metadata

Bugfix change of custom column now sets updates the book timestamp
This commit is contained in:
Ozzie Isaacs 2023-03-19 17:21:30 +01:00
parent b277ed3359
commit cbd679eb24
2 changed files with 10 additions and 5 deletions

View File

@ -1123,9 +1123,10 @@ def edit_cc_data(book_id, book, to_save, cc):
cc_db_value = None cc_db_value = None
if to_save[cc_string].strip(): if to_save[cc_string].strip():
if c.datatype in ['int', 'bool', 'float', "datetime", "comments"]: if c.datatype in ['int', 'bool', 'float', "datetime", "comments"]:
changed, to_save = edit_cc_data_value(book_id, book, c, to_save, cc_db_value, cc_string) change, to_save = edit_cc_data_value(book_id, book, c, to_save, cc_db_value, cc_string)
else: else:
changed, to_save = edit_cc_data_string(book, c, to_save, cc_db_value, cc_string) change, to_save = edit_cc_data_string(book, c, to_save, cc_db_value, cc_string)
changed |= change
else: else:
if cc_db_value is not None: if cc_db_value is not None:
# remove old cc_val # remove old cc_val

View File

@ -173,7 +173,7 @@ class TaskBackupMetadata(CalibreTask):
date = etree.SubElement(metadata, PURL + "date", nsmap=NSMAP) date = etree.SubElement(metadata, PURL + "date", nsmap=NSMAP)
date.text = '{d.year:04}-{d.month:02}-{d.day:02}T{d.hour:02}:{d.minute:02}:{d.second:02}'.format(d=book.pubdate) date.text = '{d.year:04}-{d.month:02}-{d.day:02}T{d.hour:02}:{d.minute:02}:{d.second:02}'.format(d=book.pubdate)
if book.comments: if book.comments and book.comments[0].text:
for b in book.comments: for b in book.comments:
description = etree.SubElement(metadata, PURL + "description", nsmap=NSMAP) description = etree.SubElement(metadata, PURL + "description", nsmap=NSMAP)
description.text = b.text description.text = b.text
@ -201,6 +201,10 @@ class TaskBackupMetadata(CalibreTask):
etree.SubElement(metadata, "meta", name="calibre:series_index", etree.SubElement(metadata, "meta", name="calibre:series_index",
content=str(book.series_index), content=str(book.series_index),
nsmap=NSMAP) nsmap=NSMAP)
if len(book.ratings) and book.ratings[0].rating > 0:
etree.SubElement(metadata, "meta", name="calibre:rating",
content=str(book.ratings[0].rating),
nsmap=NSMAP)
etree.SubElement(metadata, "meta", name="calibre:timestamp", etree.SubElement(metadata, "meta", name="calibre:timestamp",
content='{d.year:04}-{d.month:02}-{d.day:02}T{d.hour:02}:{d.minute:02}:{d.second:02}'.format( content='{d.year:04}-{d.month:02}-{d.day:02}T{d.hour:02}:{d.minute:02}:{d.second:02}'.format(
d=book.timestamp), d=book.timestamp),
@ -214,8 +218,8 @@ class TaskBackupMetadata(CalibreTask):
extra = None extra = None
cc_entry = getattr(book, "custom_column_" + str(cc.id)) cc_entry = getattr(book, "custom_column_" + str(cc.id))
if cc_entry.__len__(): if cc_entry.__len__():
value = cc_entry[0].get("value") value = cc_entry[0].value
extra = cc_entry[0].get("extra") extra = cc_entry[0].extra if hasattr(cc_entry[0], "extra") else None
etree.SubElement(metadata, "meta", name="calibre:user_metadata:#{}".format(cc.label), etree.SubElement(metadata, "meta", name="calibre:user_metadata:#{}".format(cc.label),
content=cc.to_json(value, extra, sequence), content=cc.to_json(value, extra, sequence),
nsmap=NSMAP) nsmap=NSMAP)