diff --git a/cps/epub_helper.py b/cps/epub_helper.py index 603ccc3d..d221dff3 100644 --- a/cps/epub_helper.py +++ b/cps/epub_helper.py @@ -77,6 +77,10 @@ def create_new_metadata_backup(book, custom_columns, export_language, translate identifier2 = etree.SubElement(metadata, PURL + "identifier", id="uuid_id", nsmap=NSMAP) identifier2.set(OPF + "scheme", "uuid") identifier2.text = book.uuid + for i in book.identifiers: + identifier = etree.SubElement(metadata, PURL + "identifier", nsmap=NSMAP) + identifier.set(OPF + "scheme", i.format_type()) + identifier.text = str(i.val) title = etree.SubElement(metadata, PURL + "title", nsmap=NSMAP) title.text = book.title for author in book.authors: diff --git a/cps/tasks/metadata_backup.py b/cps/tasks/metadata_backup.py index 2f402448..6451d9a3 100644 --- a/cps/tasks/metadata_backup.py +++ b/cps/tasks/metadata_backup.py @@ -111,93 +111,6 @@ class TaskBackupMetadata(CalibreTask): except Exception as ex: raise Exception('Writing Metadata failed with error: {} '.format(ex)) - '''def create_new_metadata_backup(self, book, custom_columns): - # generate root package element - package = etree.Element(OPF + "package", nsmap=OPF_NS) - package.set("unique-identifier", "uuid_id") - package.set("version", "2.0") - - # generate metadata element and all sub elements of it - metadata = etree.SubElement(package, "metadata", nsmap=NSMAP) - identifier = etree.SubElement(metadata, PURL + "identifier", id="calibre_id", nsmap=NSMAP) - identifier.set(OPF + "scheme", "calibre") - identifier.text = str(book.id) - identifier2 = etree.SubElement(metadata, PURL + "identifier", id="uuid_id", nsmap=NSMAP) - identifier2.set(OPF + "scheme", "uuid") - identifier2.text = book.uuid - title = etree.SubElement(metadata, PURL + "title", nsmap=NSMAP) - title.text = book.title - for author in book.authors: - creator = etree.SubElement(metadata, PURL + "creator", nsmap=NSMAP) - creator.text = str(author.name) - creator.set(OPF + "file-as", book.author_sort) # ToDo Check - creator.set(OPF + "role", "aut") - contributor = etree.SubElement(metadata, PURL + "contributor", nsmap=NSMAP) - contributor.text = "calibre (5.7.2) [https://calibre-ebook.com]" - contributor.set(OPF + "file-as", "calibre") # ToDo Check - contributor.set(OPF + "role", "bkp") - - 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) - if book.comments and book.comments[0].text: - for b in book.comments: - description = etree.SubElement(metadata, PURL + "description", nsmap=NSMAP) - description.text = b.text - for b in book.publishers: - publisher = etree.SubElement(metadata, PURL + "publisher", nsmap=NSMAP) - publisher.text = str(b.name) - if not book.languages: - language = etree.SubElement(metadata, PURL + "language", nsmap=NSMAP) - language.text = self.export_language - else: - for b in book.languages: - language = etree.SubElement(metadata, PURL + "language", nsmap=NSMAP) - language.text = str(b.lang_code) - for b in book.tags: - subject = etree.SubElement(metadata, PURL + "subject", nsmap=NSMAP) - subject.text = str(b.name) - etree.SubElement(metadata, "meta", name="calibre:author_link_map", - content="{" + ", ".join(['"' + str(a.name) + '": ""' for a in book.authors]) + "}", - nsmap=NSMAP) - for b in book.series: - etree.SubElement(metadata, "meta", name="calibre:series", - content=str(str(b.name)), - nsmap=NSMAP) - if book.series: - etree.SubElement(metadata, "meta", name="calibre:series_index", - content=str(book.series_index), - 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", - content='{d.year:04}-{d.month:02}-{d.day:02}T{d.hour:02}:{d.minute:02}:{d.second:02}'.format( - d=book.timestamp), - nsmap=NSMAP) - etree.SubElement(metadata, "meta", name="calibre:title_sort", - content=book.sort, - nsmap=NSMAP) - sequence = 0 - for cc in custom_columns: - value = None - extra = None - cc_entry = getattr(book, "custom_column_" + str(cc.id)) - if cc_entry.__len__(): - value = [c.value for c in cc_entry] if cc.is_multiple else cc_entry[0].value - extra = cc_entry[0].extra if hasattr(cc_entry[0], "extra") else None - etree.SubElement(metadata, "meta", name="calibre:user_metadata:#{}".format(cc.label), - content=cc.to_json(value, extra, sequence), - nsmap=NSMAP) - sequence += 1 - - # generate guide element and all sub elements of it - # Title is translated from default export language - guide = etree.SubElement(package, "guide") - etree.SubElement(guide, "reference", type="cover", title=self.translated_title, href="cover.jpg") - - return package''' - @property def name(self): return "Metadata backup" diff --git a/cps/templates/detail.html b/cps/templates/detail.html index 30430663..f28839f6 100755 --- a/cps/templates/detail.html +++ b/cps/templates/detail.html @@ -205,8 +205,8 @@ {% for c in cc %} -
- {% if entry['custom_column_' ~ c.id]|length > 0 %} + {% if entry['custom_column_' ~ c.id]|length > 0 %} +
{{ c.name }}: {% for column in entry['custom_column_' ~ c.id] %} {% if c.datatype == 'rating' %} @@ -235,8 +235,9 @@ {% endif %} {% endif %} {% endfor %} - {% endif %} -
+ +
+ {% endif %} {% endfor %} {% endif %} {% if not current_user.is_anonymous %}