From c524170f71a602c06fca62dfa074b0944d029602 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 5 Jan 2009 09:22:33 -0800 Subject: [PATCH] Fix #1549 (Metadata plugin not working) --- src/calibre/customize/ui.py | 45 ++++++++++++------- src/calibre/ebooks/lrf/html/table_as_image.py | 2 +- src/calibre/library/cli.py | 2 +- src/calibre/utils/fontconfig.py | 1 + 4 files changed, 32 insertions(+), 18 deletions(-) diff --git a/src/calibre/customize/ui.py b/src/calibre/customize/ui.py index 240621c51e..067185b0c3 100644 --- a/src/calibre/customize/ui.py +++ b/src/calibre/customize/ui.py @@ -105,30 +105,43 @@ def reread_metadata_plugins(): for plugin in _initialized_plugins: if isinstance(plugin, MetadataReaderPlugin): for ft in plugin.file_types: - _metadata_readers[ft] = plugin + if not _metadata_readers.has_key(ft): + _metadata_readers[ft] = [] + _metadata_readers[ft].append(plugin) elif isinstance(plugin, MetadataWriterPlugin): for ft in plugin.file_types: - _metadata_writers[ft] = plugin + if not _metadata_writers.has_key(ft): + _metadata_writers[ft] = [] + _metadata_writers[ft].append(plugin) + + def get_file_type_metadata(stream, ftype): mi = MetaInformation(None, None) - try: - plugin = _metadata_readers[ftype.lower().strip()] - if not is_disabled(plugin): - with plugin: - mi = plugin.get_metadata(stream, ftype.lower().strip()) - except: - pass + ftype = ftype.lower().strip() + if _metadata_readers.has_key(ftype): + for plugin in _metadata_readers[ftype]: + if not is_disabled(plugin): + with plugin: + try: + mi = plugin.get_metadata(stream, ftype.lower().strip()) + break + except: + continue return mi def set_file_type_metadata(stream, mi, ftype): - try: - plugin = _metadata_writers[ftype.lower().strip()] - if not is_disabled(plugin): - with plugin: - plugin.set_metadata(stream, mi, ftype.lower().strip()) - except: - traceback.print_exc() + ftype = ftype.lower().strip() + if _metadata_writers.has_key(ftype): + for plugin in _metadata_writers[ftype]: + if not is_disabled(plugin): + with plugin: + try: + plugin.set_metadata(stream, mi, ftype.lower().strip()) + break + except: + traceback.print_exc() + def _run_filetype_plugins(path_to_file, ft=None, occasion='preprocess'): occasion = {'import':_on_import, 'preprocess':_on_preprocess, diff --git a/src/calibre/ebooks/lrf/html/table_as_image.py b/src/calibre/ebooks/lrf/html/table_as_image.py index 4b40dc5be6..08eaec0436 100644 --- a/src/calibre/ebooks/lrf/html/table_as_image.py +++ b/src/calibre/ebooks/lrf/html/table_as_image.py @@ -88,7 +88,7 @@ def render_table(soup, table, css, base_dir, width, height, dpi, factor=1.0): def do_render(html, base_dir, width, height, dpi, factor): if QApplication.instance() is None: - QApplication([]) + QApplication([]) tr = HTMLTableRenderer(html, base_dir, width, height, dpi, factor) tr.loop.exec_() return tr.images, tr.tdir \ No newline at end of file diff --git a/src/calibre/library/cli.py b/src/calibre/library/cli.py index a3d81156dd..efb6af7c9c 100644 --- a/src/calibre/library/cli.py +++ b/src/calibre/library/cli.py @@ -231,7 +231,7 @@ NULL = DevNull() def do_add(db, paths, one_book_per_directory, recurse, add_duplicates): orig = sys.stdout - sys.stdout = NULL + #sys.stdout = NULL try: files, dirs = [], [] for path in paths: diff --git a/src/calibre/utils/fontconfig.py b/src/calibre/utils/fontconfig.py index 8633cb3473..d24ea0d4b1 100644 --- a/src/calibre/utils/fontconfig.py +++ b/src/calibre/utils/fontconfig.py @@ -34,6 +34,7 @@ except: iswindows = 'win32' in sys.platform or 'win64' in sys.platform isosx = 'darwin' in sys.platform +isbsd = 'bsd' in sys.platform DISABLED = False #if isosx: # libc = ctypes.cdll.LoadLibrary(ctypes.util.find_library('c'))