diff --git a/Obok_calibre_plugin/obok_plugin.zip b/Obok_calibre_plugin/obok_plugin.zip index 8f9010c..2a53b4e 100644 Binary files a/Obok_calibre_plugin/obok_plugin.zip and b/Obok_calibre_plugin/obok_plugin.zip differ diff --git a/Obok_calibre_plugin/obok_plugin/__init__.py b/Obok_calibre_plugin/obok_plugin/__init__.py index 5a5eea0..5a629f7 100644 --- a/Obok_calibre_plugin/obok_plugin/__init__.py +++ b/Obok_calibre_plugin/obok_plugin/__init__.py @@ -19,7 +19,7 @@ except NameError: PLUGIN_NAME = 'Obok DeDRM' PLUGIN_SAFE_NAME = PLUGIN_NAME.strip().lower().replace(' ', '_') PLUGIN_DESCRIPTION = _('Removes DRM from Kobo kepubs and adds them to the library.') -PLUGIN_VERSION_TUPLE = (3, 1, 6) +PLUGIN_VERSION_TUPLE = (3, 1, 8) PLUGIN_VERSION = '.'.join([str(x) for x in PLUGIN_VERSION_TUPLE]) HELPFILE_NAME = PLUGIN_SAFE_NAME + '_Help.htm' PLUGIN_AUTHORS = 'Anon' diff --git a/Obok_calibre_plugin/obok_plugin/action.py b/Obok_calibre_plugin/obok_plugin/action.py index cfa164d..2478abd 100644 --- a/Obok_calibre_plugin/obok_plugin/action.py +++ b/Obok_calibre_plugin/obok_plugin/action.py @@ -90,28 +90,29 @@ class InterfacePluginAction(InterfaceAction): # # search for connected device in case serials are saved tmpserials = cfg['kobo_serials'] - device = self.parent().device_manager.connected_device device_path = None - if (device): - device_path = device._main_prefix - debug_print("get_device_settings - device_path=", device_path) - # get serial from device_path/.adobe-digital-editions/device.xml - if can_parse_xml: - devicexml = os.path.join(device_path, '.adobe-digital-editions', 'device.xml') - debug_print("trying to load %s" % devicexml) - if (os.path.exists(devicexml)): - debug_print("trying to parse %s" % devicexml) - xmltree = ET.parse(devicexml) - for node in xmltree.iter(): - if "deviceSerial" in node.tag: - serial = node.text - debug_print ("found serial %s" % serial) - tmpserials.append(serial) - break - - - else: - debug_print("didn't find device") + try: + device = self.parent().device_manager.connected_device + if (device): + device_path = device._main_prefix + debug_print("get_device_settings - device_path=", device_path) + # get serial from device_path/.adobe-digital-editions/device.xml + if can_parse_xml: + devicexml = os.path.join(device_path, '.adobe-digital-editions', 'device.xml') + debug_print("trying to load %s" % devicexml) + if (os.path.exists(devicexml)): + debug_print("trying to parse %s" % devicexml) + xmltree = ET.parse(devicexml) + for node in xmltree.iter(): + if "deviceSerial" in node.tag: + serial = node.text + debug_print ("found serial %s" % serial) + tmpserials.append(serial) + break + else: + debug_print("didn't find device") + except: + debug_print("Exception getting device path. Probably not an E-Ink Kobo device") # Get the Kobo Library object (obok v3.01) self.library = KoboLibrary(tmpserials, device_path) diff --git a/Obok_calibre_plugin/obok_plugin/obok/obok.py b/Obok_calibre_plugin/obok_plugin/obok/obok.py index 08f484a..7f4f31e 100644 --- a/Obok_calibre_plugin/obok_plugin/obok/obok.py +++ b/Obok_calibre_plugin/obok_plugin/obok/obok.py @@ -1,6 +1,9 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +# Version 3.1.8 November 2015 +# Handle the case of Kobo Arc or Vox device (i.e. don't crash). +# # Version 3.1.7 October 2015 # Handle the case of no device or database more gracefully. # diff --git a/Obok_calibre_plugin/obok_plugin_ReadMe.txt b/Obok_calibre_plugin/obok_plugin_ReadMe.txt index 3decbfb..db87dce 100644 --- a/Obok_calibre_plugin/obok_plugin_ReadMe.txt +++ b/Obok_calibre_plugin/obok_plugin_ReadMe.txt @@ -1,7 +1,7 @@ obok_plugin.zip ================ -This plugin will remove the DRM from Kobo ebooks download on Mac or Windows using the Kobo desktop application, or from Kobo ebooks on an attached Kobo reader. If both are available, ebooks will be read from the attached Kobo reader. To import from the desktop application, unplug the Kobo reader. +This plugin will remove the DRM from Kobo ebooks download on Mac or Windows using the Kobo desktop application, or from Kobo ebooks on an attached E-Ink Kobo reader (but not a Kobo Arc or Kobo Vox). If both are available, ebooks will be read from the attached E-Ink Kobo reader. To import from the desktop application, unplug the Kobo reader. Installation