mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
E-book viewer: Fix the show metadata button not reading EPUB 3 metadata
This commit is contained in:
parent
428b7a1135
commit
464979673a
@ -620,6 +620,9 @@ class OPF(object): # {{{
|
|||||||
self._user_metadata_ = temp.get_all_user_metadata(True)
|
self._user_metadata_ = temp.get_all_user_metadata(True)
|
||||||
|
|
||||||
def to_book_metadata(self):
|
def to_book_metadata(self):
|
||||||
|
if self.package_version >= 3.0:
|
||||||
|
from calibre.ebooks.metadata.opf3 import read_metadata
|
||||||
|
return read_metadata(self.root)
|
||||||
ans = MetaInformation(self)
|
ans = MetaInformation(self)
|
||||||
for n, v in self._user_metadata_.items():
|
for n, v in self._user_metadata_.items():
|
||||||
ans.set_user_metadata(n, v)
|
ans.set_user_metadata(n, v)
|
||||||
|
@ -139,9 +139,10 @@ class EbookIterator(BookmarksMixin):
|
|||||||
self.book_format, self.pathtoopf, input_fmt = run_extract_book(
|
self.book_format, self.pathtoopf, input_fmt = run_extract_book(
|
||||||
self.pathtoebook, self.base, only_input_plugin=only_input_plugin, view_kepub=view_kepub, processed=processed)
|
self.pathtoebook, self.base, only_input_plugin=only_input_plugin, view_kepub=view_kepub, processed=processed)
|
||||||
self.opf = OPF(self.pathtoopf, os.path.dirname(self.pathtoopf))
|
self.opf = OPF(self.pathtoopf, os.path.dirname(self.pathtoopf))
|
||||||
self.language = self.opf.language
|
self.mi = self.opf.to_book_metadata()
|
||||||
if self.language:
|
self.language = None
|
||||||
self.language = self.language.lower()
|
if self.mi.languages:
|
||||||
|
self.language = self.mi.languages[0].lower()
|
||||||
ordered = [i for i in self.opf.spine if i.is_linear] + \
|
ordered = [i for i in self.opf.spine if i.is_linear] + \
|
||||||
[i for i in self.opf.spine if not i.is_linear]
|
[i for i in self.opf.spine if not i.is_linear]
|
||||||
self.spine = []
|
self.spine = []
|
||||||
|
@ -953,10 +953,9 @@ class EbookViewer(MainWindow):
|
|||||||
det_msg=tb, show=True)
|
det_msg=tb, show=True)
|
||||||
self.close_progress_indicator()
|
self.close_progress_indicator()
|
||||||
else:
|
else:
|
||||||
self.metadata.show_opf(self.iterator.opf,
|
self.metadata.show_metadata(self.iterator.mi, self.iterator.book_format)
|
||||||
self.iterator.book_format)
|
|
||||||
self.view.current_language = self.iterator.language
|
self.view.current_language = self.iterator.language
|
||||||
title = self.iterator.opf.title
|
title = self.iterator.mi.title
|
||||||
if not title:
|
if not title:
|
||||||
title = os.path.splitext(os.path.basename(pathtoebook))[0]
|
title = os.path.splitext(os.path.basename(pathtoebook))[0]
|
||||||
if self.iterator.toc:
|
if self.iterator.toc:
|
||||||
|
@ -80,14 +80,13 @@ class Metadata(QWebView): # {{{
|
|||||||
def update_layout(self):
|
def update_layout(self):
|
||||||
self.setGeometry(0, 0, self.parent().width(), self.parent().height())
|
self.setGeometry(0, 0, self.parent().width(), self.parent().height())
|
||||||
|
|
||||||
def show_opf(self, opf, ext=''):
|
def show_metadata(self, mi, ext=''):
|
||||||
from calibre.gui2.book_details import render_html, css
|
from calibre.gui2.book_details import render_html, css
|
||||||
from calibre.ebooks.metadata.book.render import mi_to_html
|
from calibre.ebooks.metadata.book.render import mi_to_html
|
||||||
|
|
||||||
def render_data(mi, use_roman_numbers=True, all_fields=False):
|
def render_data(mi, use_roman_numbers=True, all_fields=False):
|
||||||
return mi_to_html(mi, use_roman_numbers=use_roman_numbers, rating_font=rating_font(), rtl=is_rtl())
|
return mi_to_html(mi, use_roman_numbers=use_roman_numbers, rating_font=rating_font(), rtl=is_rtl())
|
||||||
|
|
||||||
mi = opf.to_book_metadata()
|
|
||||||
html = render_html(mi, css(), True, self, render_data_func=render_data)
|
html = render_html(mi, css(), True, self, render_data_func=render_data)
|
||||||
self.setHtml(html)
|
self.setHtml(html)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user