X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/b6ec0976a383cc1823f4a199bc3e6dc40880b049..2197a34c52c6e333d125b059666140b5eabb833d:/librarian/mobi.py diff --git a/librarian/mobi.py b/librarian/mobi.py old mode 100755 new mode 100644 index a93315e..ea83df8 --- a/librarian/mobi.py +++ b/librarian/mobi.py @@ -3,6 +3,7 @@ # This file is part of Librarian, licensed under GNU Affero GPLv3 or later. # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # +from copy import deepcopy import os import subprocess from tempfile import NamedTemporaryFile @@ -13,29 +14,38 @@ from librarian import get_resource def transform(wldoc, verbose=False, - sample=None, cover=None, flags=None): + sample=None, cover=None, flags=None, ilustr_path=None): """ produces a MOBI file wldoc: a WLDocument sample=n: generate sample e-book (with at least n paragraphs) - cover: a cover.Cover object + cover: a cover.Cover factory overriding default flags: less-advertising, """ - book_info = wldoc.book_info + document = deepcopy(wldoc) + del wldoc + book_info = document.book_info # provide a cover by default if not cover: cover = WLCover cover_file = NamedTemporaryFile(suffix='.png', delete=False) - c = cover(book_info.author.readable(), book_info.title) - c.save(cover_file) + bound_cover = cover(book_info) + bound_cover.save(cover_file) + + if bound_cover.uses_dc_cover: + if document.book_info.cover_by: + document.edoc.getroot().set('data-cover-by', document.book_info.cover_by) + if document.book_info.cover_source: + document.edoc.getroot().set('data-cover-source', document.book_info.cover_source) if not flags: flags = [] flags = list(flags) + ['without-fonts'] - epub = wldoc.as_epub(verbose=verbose, sample=sample, html_toc=True, - flags=flags, style=get_resource('mobi/style.css')) + epub = document.as_epub( + verbose=verbose, sample=sample, html_toc=True, + flags=flags, style=get_resource('mobi/style.css'), ilustr_path=ilustr_path) if verbose: kwargs = {}