diff --git a/src/calibre/srv/render_book.py b/src/calibre/srv/render_book.py index 97395f0ad5..0d4050d9fd 100644 --- a/src/calibre/srv/render_book.py +++ b/src/calibre/srv/render_book.py @@ -31,7 +31,7 @@ from calibre.ebooks.oeb.base import ( from calibre.ebooks.oeb.iterator.book import extract_book from calibre.ebooks.oeb.polish.container import Container as ContainerBase from calibre.ebooks.oeb.polish.cover import ( - find_cover_image, has_epub_cover, set_epub_cover + find_cover_image, find_cover_image_in_page, find_cover_page ) from calibre.ebooks.oeb.polish.css import transform_inline_styles from calibre.ebooks.oeb.polish.toc import from_xpaths, get_landmarks, get_toc @@ -238,7 +238,35 @@ class SimpleContainer(ContainerBase): tweak_mode = True -def create_cover_page(container, input_fmt, allow_no_cover, book_metadata=None): +def find_epub_cover(container): + cover_image = find_cover_image(container) + marked_title_page = find_cover_page(container) + cover_image_in_first_page = None + first_page_name = next(container.spine_names)[0] + if not marked_title_page: + cover_image_in_first_page = find_cover_image_in_page(container, first_page_name) + + has_epub_cover = cover_image or marked_title_page or cover_image_in_first_page + if not has_epub_cover: + return None, None + if marked_title_page and cover_image: + return marked_title_page, cover_image + + if marked_title_page: + if cover_image: + return marked_title_page, cover_image + cover_image = find_cover_image_in_page(container, marked_title_page) + if cover_image: + return marked_title_page, cover_image + return None, None + + if cover_image_in_first_page: + return first_page_name, cover_image_in_first_page + + return None, None + + +def create_cover_page(container, input_fmt, is_comic, book_metadata=None): templ = '''