From b0fa6bdd2eacacc6f88cc330cad97c7d9ef02096 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 18 May 2018 08:34:56 +0530 Subject: [PATCH] Ensure custom metadata plugins are used in preference to builtin ones --- src/calibre/customize/ui.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/calibre/customize/ui.py b/src/calibre/customize/ui.py index cea6dee046..3ca5efd633 100644 --- a/src/calibre/customize/ui.py +++ b/src/calibre/customize/ui.py @@ -340,9 +340,19 @@ def reread_metadata_plugins(): for ft in plugin.file_types: _metadata_writers[ft].append(plugin) + # Ensure custom metadata plugins are used in preference to builtin + # ones for a given filetype + def key(plugin): + return (1 if plugin.plugin_path is None else 0), plugin.name + + for group in (_metadata_readers, _metadata_writers): + for plugins in group.itervalues(): + if len(plugins) > 1: + plugins.sort(key=key) + def metadata_readers(): - ans = set([]) + ans = set() for plugins in _metadata_readers.values(): for plugin in plugins: ans.add(plugin)