From 5cd9a5bf9deb45e771c5de14e350b347483840ed Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Mon, 28 Mar 2016 17:50:04 +0200 Subject: [PATCH] Changes requested: use Exception in db.close(), change minimum version, add a method to test for existence of LibraryClosed plugins. Note that the plugins cannot actually be tested with this commit because calibre's version is 2.53. --- src/calibre/customize/__init__.py | 4 ++-- src/calibre/customize/ui.py | 7 +++++++ src/calibre/db/cache.py | 2 +- src/calibre/gui2/ui.py | 4 ++-- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/calibre/customize/__init__.py b/src/calibre/customize/__init__.py index 4323ae11d0..e35fd722e5 100644 --- a/src/calibre/customize/__init__.py +++ b/src/calibre/customize/__init__.py @@ -789,8 +789,8 @@ class LibraryClosedPlugin(Plugin): # {{{ ''' type = _('Library Closed') - # minimum version 2 because it requires the new db - minimum_calibre_version = (2, 0, 0) + # minimum version 2.54 because that is when support was added + minimum_calibre_version = (2, 54, 0) def run(self, db): ''' diff --git a/src/calibre/customize/ui.py b/src/calibre/customize/ui.py index c827f71edd..ad7f861344 100644 --- a/src/calibre/customize/ui.py +++ b/src/calibre/customize/ui.py @@ -255,6 +255,13 @@ def available_library_closed_plugins(): if not is_disabled(plugin): plugin.site_customization = customization.get(plugin.name, '') yield plugin + +def has_library_closed_plugins(): + for plugin in _initialized_plugins: + if isinstance(plugin, LibraryClosedPlugin): + if not is_disabled(plugin): + return True + return False # }}} # Store Plugins # {{{ diff --git a/src/calibre/db/cache.py b/src/calibre/db/cache.py index 9e28503bba..611efc80f8 100644 --- a/src/calibre/db/cache.py +++ b/src/calibre/db/cache.py @@ -2017,7 +2017,7 @@ class Cache(object): for plugin in available_library_closed_plugins(): try: plugin.run(self) - except: + except Exception: import traceback traceback.print_exc() self.backend.close() diff --git a/src/calibre/gui2/ui.py b/src/calibre/gui2/ui.py index 5fa193534b..700e9554ae 100644 --- a/src/calibre/gui2/ui.py +++ b/src/calibre/gui2/ui.py @@ -880,8 +880,8 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{ def shutdown(self, write_settings=True): get_gui().show_shutdown_message(_('Shutting down')) - from calibre.customize.ui import available_library_closed_plugins - if available_library_closed_plugins(): + from calibre.customize.ui import has_library_closed_plugins + if has_library_closed_plugins(): get_gui().show_shutdown_message( _('Running database shutdown plugins. This could take a few seconds...'))