From 29c172b95eab023331bcdf986b27054cab018ac1 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 15 May 2009 07:54:10 -0700 Subject: [PATCH] HTML2ZIP import plugin works again --- src/calibre/customize/builtins.py | 19 +++++++++++++++---- src/calibre/ebooks/metadata/worker.py | 1 - src/calibre/gui2/add.py | 2 +- todo | 1 - 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/calibre/customize/builtins.py b/src/calibre/customize/builtins.py index 1205775922..bdbe1f9762 100644 --- a/src/calibre/customize/builtins.py +++ b/src/calibre/customize/builtins.py @@ -2,7 +2,7 @@ from __future__ import with_statement __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal ' -import textwrap, os +import textwrap, os, glob from calibre.customize import FileTypePlugin, MetadataReaderPlugin, MetadataWriterPlugin from calibre.constants import __version__ @@ -20,9 +20,20 @@ every time you add an HTML file to the library.\ on_import = True def run(self, htmlfile): - of = self.temporary_file('_plugin_html2zip.zip') - from calibre.ebooks.html import gui_main as html2oeb - html2oeb(htmlfile, of) + from calibre.ptempfile import TemporaryDirectory + from calibre.gui2.convert.gui_conversion import gui_convert + from calibre.customize.conversion import OptionRecommendation + from calibre.ebooks.epub import initialize_container + + with TemporaryDirectory('_plugin_html2zip') as tdir: + gui_convert(htmlfile, tdir, [('debug_input', tdir, + OptionRecommendation.HIGH)]) + of = self.temporary_file('_plugin_html2zip.zip') + opf = glob.glob(os.path.join(tdir, '*.opf'))[0] + epub = initialize_container(of.name, os.path.basename(opf)) + epub.add_dir(tdir) + epub.close() + return of.name class OPFMetadataReader(MetadataReaderPlugin): diff --git a/src/calibre/ebooks/metadata/worker.py b/src/calibre/ebooks/metadata/worker.py index 66a992df98..7c2f44ca81 100644 --- a/src/calibre/ebooks/metadata/worker.py +++ b/src/calibre/ebooks/metadata/worker.py @@ -101,7 +101,6 @@ class ReadMetadata(Thread): return for id in ids: - print 11111111, id progress(id) for job in jobs: diff --git a/src/calibre/gui2/add.py b/src/calibre/gui2/add.py index d0aeb3b300..c342f6d323 100644 --- a/src/calibre/gui2/add.py +++ b/src/calibre/gui2/add.py @@ -90,7 +90,7 @@ class Adder(QObject): def add_formats(self, id, formats): for path in formats: fmt = os.path.splitext(path)[-1].replace('.', '').upper() - self.db.add_format(id, fmt, open(path, 'rb'), index_is_id=True, + self.db.add_format_with_hooks(id, fmt, path, index_is_id=True, notify=False) def canceled(self): diff --git a/todo b/todo index b983508549..25e164de88 100644 --- a/todo +++ b/todo @@ -5,4 +5,3 @@ * Replace single application stuff with Listener from multiprocessing -* Fix HTML-to-ZIP plugin