[epub] pep8
[librarian.git] / librarian / mobi.py
index d98b838..b30c1fe 100644 (file)
@@ -3,18 +3,19 @@
 # This file is part of Librarian, licensed under GNU Affero GPLv3 or later.
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 #
 # 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
 
 from librarian import OutputFile
 from copy import deepcopy
 import os
 import subprocess
 from tempfile import NamedTemporaryFile
 
 from librarian import OutputFile
-from librarian.cover import WLCover
+from librarian.cover import DefaultEbookCover
 from librarian import get_resource
 
 
 from librarian import get_resource
 
 
-def transform(wldoc, verbose=False,
-              sample=None, cover=None, flags=None):
+def transform(wldoc, verbose=False, sample=None, cover=None,
+              use_kindlegen=False, flags=None):
     """ produces a MOBI file
 
     wldoc: a WLDocument
     """ produces a MOBI file
 
     wldoc: a WLDocument
@@ -27,34 +28,29 @@ def transform(wldoc, verbose=False,
     del wldoc
     book_info = document.book_info
 
     del wldoc
     book_info = document.book_info
 
-    # provide a cover by default
-    if not cover:
-        cover = WLCover
-    cover_file = NamedTemporaryFile(suffix='.png', delete=False)
-    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 = []
     if not flags:
         flags = []
-    flags = list(flags) + ['without-fonts']
-    epub = document.as_epub(verbose=verbose, sample=sample, html_toc=True,
-            flags=flags, style=get_resource('mobi/style.css'))
+    flags = list(flags)
 
 
+    epub = document.as_epub(verbose=verbose, sample=sample,
+                            html_toc=True, cover=True, flags=flags)
     if verbose:
         kwargs = {}
     else:
         devnull = open("/dev/null", 'w')
         kwargs = {"stdout": devnull, "stderr": devnull}
 
     if verbose:
         kwargs = {}
     else:
         devnull = open("/dev/null", 'w')
         kwargs = {"stdout": devnull, "stderr": devnull}
 
-    output_file = NamedTemporaryFile(prefix='librarian', suffix='.mobi', delete=False)
+    output_file = NamedTemporaryFile(prefix='librarian', suffix='.mobi',
+                                     delete=False)
     output_file.close()
     output_file.close()
-    subprocess.check_call(['ebook-convert', epub.get_filename(), output_file.name,
-            '--no-inline-toc', '--cover=%s' % cover_file.name], **kwargs)
-    os.unlink(cover_file.name)
-    return OutputFile.from_filename(output_file.name)
\ No newline at end of file
+
+    if use_kindlegen:
+        output_file_basename = os.path.basename(output_file.name)
+        subprocess.check_call(['kindlegen', '-c2', epub.get_filename(),
+                              '-o', output_file_basename], **kwargs)
+    else:
+        subprocess.check_call(['ebook-convert', epub.get_filename(),
+                               output_file.name, '--no-inline-toc',
+                               '--mobi-file-type=both',
+                               '--mobi-ignore-margins'], **kwargs)
+    return OutputFile.from_filename(output_file.name)