jgoguen / calibre-kobo-driver

An extension of the existing KoboTouch driver provided with Calibre. This plugin allows modifying ePub files to enable extra Kobo features. I am providing code in the repository to you under an open source license. Because this is my personal repository, the license you receive to my code is from me and not my employer.
GNU General Public License v3.0
327 stars 21 forks source link

Similar to #163, 3.6.8 will not send books to the device - Error communicating with device #170

Closed chigh closed 2 months ago

chigh commented 2 months ago

Bug Checklist

These items are optional. Fill in as much of them as possible. If something is not applicable to your bug report, note that.

Blind Man's Bluff - Sherry Sontag_scrambled.epub.zip

Describe the bug

After installing the latest plugin, I can no longer send books to my Kobo. I do have it auto-convert to kepub, but the error says it cannot communicate with the device. I have tried multiple books, all are English titles with no non-ascii characters.

If I do not have it convert to kepub and send to the device, it sends. Calibre no longer will convert to kepub.

Can I get a copy of 3.6.6? That version worked as of before I installed 3.6.8 earlier this evening.

Steps to Reproduce

Steps to reproduce the behavior (as detailed as you can):

  1. Open Calibre
  2. Connect device to computer
  3. Select book
  4. Click Send to Device

Expected behavior

The book is converted and copied to my device.

Actual behaviour

If the book is already on the device, I will get the dialogue box confirming that overwriting... then the error will pop up. If it's a new book, it will immediately pop up with the error.

Screenshots

Screenshot 2024-08-01 at 21 53 31

Logs

ApplicationPaletteChange event ignored
Using calibre Qt style: True
2024-08-01 21:50:53.913 calibre-debug[37336:9254738] WARNING: Secure coding is not enabled for restorable state! Enable secure coding by implementing NSApplicationDelegate.applicationSupportsSecureRestorableState: and returning YES.
qt.gui.imageio: libpng warning: iCCP: known incorrect sRGB profile
calibre Debug log
calibre 7.16  embedded-python: True
macOS-14.5-arm64-arm-64bit Darwin ('64bit', '')
('Darwin', '23.5.0', 'Darwin Kernel Version 23.5.0: Wed May  1 20:14:38 PDT 2024; root:xnu-10063.121.3~5/RELEASE_ARM64_T6020')
Python 3.11.5
OSX: ('14.5', ('', '', ''), 'arm64')
Interface language: None
EXE path: /Applications/calibre.app/Contents/MacOS/calibre-debug
Successfully initialized third party plugins: Gather KFX-ZIP (from KFX Input) (2, 15, 0) && DeDRM (10, 0, 9) && Package KFX (from KFX Input) (2, 15, 0) && KFX metadata reader (from KFX Input) (2, 15, 0) && From KFX (2, 15, 0) && KFX Input (2, 15, 0) && KePub Input (3, 6, 6) && KePub Metadata Reader (3, 4, 3) && KePub Metadata Writer (3, 4, 3) && KePub Output (3, 6, 8) && Kobo Books (1, 9, 2) && Kobo Metadata (1, 6, 3) && Kobo Utilities (2, 17, 1) && KoboTouchExtended (3, 6, 8) && Obok DeDRM (10, 0, 9)
calibre 7.16  embedded-python: True
macOS-14.5-arm64-arm-64bit Darwin ('64bit', '')
('Darwin', '23.5.0', 'Darwin Kernel Version 23.5.0: Wed May  1 20:14:38 PDT 2024; root:xnu-10063.121.3~5/RELEASE_ARM64_T6020')
Python 3.11.5
OSX: ('14.5', ('', '', ''), 'arm64')
Interface language: None
EXE path: /Applications/calibre.app/Contents/MacOS/calibre-debug
Successfully initialized third party plugins: Gather KFX-ZIP (from KFX Input) (2, 15, 0) && DeDRM (10, 0, 9) && Package KFX (from KFX Input) (2, 15, 0) && KFX metadata reader (from KFX Input) (2, 15, 0) && From KFX (2, 15, 0) && KFX Input (2, 15, 0) && KePub Input (3, 6, 6) && KePub Metadata Reader (3, 4, 3) && KePub Metadata Writer (3, 4, 3) && KePub Output (3, 6, 8) && Kobo Books (1, 9, 2) && Kobo Metadata (1, 6, 3) && Kobo Utilities (2, 17, 1) && KoboTouchExtended (3, 6, 8) && Obok DeDRM (10, 0, 9)
QPA platform: cocoa
devicePixelRatio: 2.0
logicalDpi: 72.0 x 72.0
physicalDpi: 127.50000191485792 x 127.50000191485789
[0.00] Starting up...
[0.01] Showing splash screen...
[0.18] splash screen shown
[0.18] Initializing db...
[0.20] db initialized
[0.20] Constructing main UI...
DEBUG:    0.0 Kobo Utilities Configuration - CreateNewCustomColumn is supported
DEBUG:    0.0 KoboUtilites::action.py - loading translations
DEBUG:    0.0 KoboUtilites::dialogs.py - loading translations
DEBUG:    0.0 KoboUtilites::action.py - loading translations
DEBUG:    0.0 obok::utilities.py - loading translations
DEBUG:    0.0 obok::dialogs.py - loading translations
DEBUG:    0.0 obok::config.py - loading translations
DEBUG:    0.0 obok::action_err.py - loading translations
[1.14] GUI main window shown
DEBUG:    0.3 No Kobo Touch, Glo or Mini appears to be connected
DEBUG:    0.3 rebuild_menus - self.supports_ratings=None, self.supports_tiles=None
DEBUG:    0.3 KoboUtilities:set_toolbar_button_tooltip - start: text='None'
DEBUG:    0.3 KoboUtilities:set_toolbar_button_tooltip - setting to text='Utilities to use with Kobo ereaders

Driver: KoboTouchExtended'
[1.18] main UI initialized...
[1.18] Hiding splash screen
Failed to request permission for showing notification: The operation couldn’t be completed. (UNErrorDomain error 1.)

{'bsd_drives': {'main': '/dev/disk4'},
 'drives': {'main': '/Volumes/KOBOeReader'},
 'mount_map': {'/dev/disk1s1': '/System/Volumes/iSCPreboot',
               '/dev/disk1s2': '/System/Volumes/xarts',
               '/dev/disk1s3': '/System/Volumes/Hardware',
               '/dev/disk3s1s1': '/',
               '/dev/disk3s2': '/System/Volumes/Preboot',
               '/dev/disk3s4': '/System/Volumes/Update',
               '/dev/disk3s5': '/System/Volumes/Data',
               '/dev/disk3s6': '/System/Volumes/VM',
               '/dev/disk3s7': '/Volumes/Storage',
               '/dev/disk4': '/Volumes/KOBOeReader',
               'devfs': '/dev',
               'map auto_home': '/System/Volumes/Data/home'}}
DEBUG:    0.0 KoboTouch::open_osx - mount_map= {'/dev/disk3s1s1': '/', 'devfs': '/dev', '/dev/disk3s6': '/System/Volumes/VM', '/dev/disk3s2': '/System/Volumes/Preboot', '/dev/disk3s4': '/System/Volumes/Update', '/dev/disk1s2': '/System/Volumes/xarts', '/dev/disk1s1': '/System/Volumes/iSCPreboot', '/dev/disk1s3': '/System/Volumes/Hardware', '/dev/disk3s5': '/System/Volumes/Data', 'map auto_home': '/System/Volumes/Data/home', '/dev/disk3s7': '/Volumes/Storage', '/dev/disk4': '/Volumes/KOBOeReader'}
DEBUG:    0.0 KoboTouch::open_osx - self._main_prefix= /Volumes/KOBOeReader/
DEBUG:    0.0 KoboTouch::open_osx - self._card_a_prefix= None
DEBUG:    0.0 KoboTouch::open_osx - self._card_b_prefix= None
DEBUG:   14.2 KoboUtilities:_on_device_connection_changed - self.plugin_device_connection_changed.__class__:  <class 'PyQt6.QtCore.pyqtBoundSignal'>
DEBUG:   14.2 Methods for self.plugin_device_connection_changed:  ['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'connect', 'disconnect', 'emit', 'signal']
DEBUG:   14.2 Have a Kobo device connected connected
DEBUG:   14.2 BEGIN Get Device Path
DEBUG:   14.2 Root path of device: /Volumes/KOBOeReader/
DEBUG:   14.2 END Get Device Path
DEBUG:   14.2 KoboUtilities:get_device - self.device_path="/Volumes/KOBOeReader/"
DEBUG:   14.2 KoboUtilities:set_toolbar_button_tooltip - start: text='None'
DEBUG:   14.2 KoboUtilities:set_toolbar_button_tooltip - setting to text='Utilities to use with Kobo ereaders

Driver: KoboTouchExtended'
Job: 0 Get device information started
DeviceJob: 0 Get device information done, calling callback
DeviceJob: 0 Get device information callback returned
Job: 1 Set library information started
DeviceJob: 1 Set library information done, calling callback
DeviceJob: 1 Set library information callback returned
Job: 2 Get list of books on device started
DEBUG:    0.0 KoboTouch:books - oncard='None'
2024-08-01 21:51:09 [DEBUG] KoboTouchExtended:settings: settings= �����������������������������������������������������������������2024-08-01 21:51:09 [DEBUG] <calibre.utils.config_base.OptionValues object at 0x12b1c5450>
DEBUG:    0.0 KoboTouch:books - oncard='None', prefix='/Volumes/KOBOeReader/'
DEBUG:    0.0 device_version_info - start
DEBUG:    0.0 device_version_info - version_file=/Volumes/KOBOeReader/.kobo/version
DEBUG:    0.0 device_version_info - have opened version_file
DEBUG:    0.0 device_version_info - self._device_version_info= ['N50641C485441', '4.1.15', '4.38.23038', '4.1.15', '4.1.15', '00000000-0000-0000-0000-000000000386']
DEBUG:    0.0 Kobo device: Kobo Clara 2E
DEBUG:    0.0 Version of driver: (3, 6, 8) Has kepubs: True
DEBUG:    0.0 Version of firmware: (4, 38, 23038) Has kepubs: True
DEBUG:    0.0 Firmware supports cover image tree: True
2024-08-01 21:51:09 [DEBUG] KoboTouchExtended:settings: settings= �����������������������������������������������������������������2024-08-01 21:51:09 [DEBUG] <calibre.utils.config_base.OptionValues object at 0x12b1c4310>
DEBUG:    0.0 KoboTouch:books - opts.extra_customization= []
DEBUG:    0.0 KoboTouch:books - driver options= Driver:KoboTouchExtended, Options - format_map: ['kepub', 'epub', 'cbr', 'cbz', 'pdf', 'txt'], use_subdirs: True, read_metadata: True, use_author_sort: False, save_template: {author_sort}/{title} - {authors}, extra_customization: [], manage_collections: True, use_collections_columns: True, collections_columns: , use_collections_template: False, collections_template: , create_collections: True, delete_empty_collections: False, ignore_collections_names: , upload_covers: False, dithered_covers: False, keep_cover_aspect: False, upload_grayscale: False, letterbox_fs_covers: False, letterbox_fs_covers_color: #000000, png_covers: False, show_archived_books: False, show_previews: False, show_recommendations: False, update_series: True, force_series_id: False, update_core_metadata: False, update_purchased_kepubs: False, update_device_metadata: True, update_subtitle: False, subtitle_template: , update_bookstats: False, bookstats_wordcount_template: , bookstats_pagecount_template: , bookstats_timetoread_upper_template: , bookstats_timetoread_lower_template: , modify_css: False, override_kobo_replace_existing: True, support_newer_firmware: False, debugging_title: , driver_version: 3.6.7, extra_features: True, use_template: False, kepubify_template: , upload_encumbered: False, skip_failed: False, hyphenate: False, smarten_punctuation: False, clean_markup: False, full_page_numbers: False, disable_hyphenation: False, file_copy_dir: , hyphenate_chars: 6, hyphenate_chars_before: 3, hyphenate_chars_after: 3, hyphenate_limit_lines: 2
DEBUG:    0.1 KoboTouch:books - prefs['manage_device_metadata']= on_send
DEBUG:    0.1 KoboTouch:books - set_debugging_title to ''
DEBUG:    0.1 KoboTouch:books - length bl=0
DEBUG:    0.2 KoboTouch:books - length bl after sync=297
DEBUG:    0.2 KoboTouch:books - reading device database
DEBUG:    0.2 Database Version:  174
DEBUG:    0.2 KoboTouch:books - shelf list: ['ReadingList', 'Fix me']
DEBUG:    0.2 KoboTouch:books - query= SELECT Title, Attribution, DateCreated, ContentID, MimeType, ContentType, ImageId, ReadStatus, Description, Publisher , ___ExpirationStatus, FavouritesIndex, Accessibility, Language, IsDownloaded, ISBN, Series, SeriesNumber, ___UserID, ExternalId, Subtitle, SeriesID, SeriesNumberFloat, StorePages, StoreWordCount, StoreTimeToReadLowerEstimate, StoreTimeToReadUpperEstimate FROM content  WHERE BookID IS NULL  AND ((Accessibility = -1 AND IsDownloaded in ('true', 1 ))       OR (Accessibility IN (1,2,8,9) and IsDownloaded in ('true', 1))         )  AND (externalId IS NULL OR externalId = '') AND contentId NOT LIKE 'file:///mnt/sd/%'
Job: 0 Get device information finished
No details available.
Job: 1 Set library information finished
No details available.
DEBUG:    0.9 KoboTouch:books - self.kobo_series_dict= {'Wayfarers': 'bb05b8c7-d1ce-55cd-bd21-7ea4e896ffe9', 'Atticus Wolfe': '99463c71-7c66-5773-a382-7fc9be8f11c6'}
DEBUG:    0.9 KoboTouch:books - about to sync_booklists
DEBUG:    0.9 USBMS: starting sync_booklists
DEBUG:    1.0 USBMS: finished sync_booklists
DEBUG:    1.0 KoboTouch:books - have done sync_booklists
DEBUG:    1.0 KoboTouch:books - end - oncard='None'
DEBUG:    1.0 KoboTouch:books - oncard='carda'
DEBUG:    1.0 KoboTouch:books - Asked to process 'carda', but do not have one!
DEBUG:    1.0 KoboTouch:books - oncard='cardb'
DEBUG:    1.0 KoboTouch:books - Asked to process 'cardb', but do not have one!
DeviceJob: 2 Get list of books on device done, calling callback
DEBUG:    1.0 DeviceJob: metadata_downloaded: Starting set_books_in_library
DEBUG:    1.0 DeviceJob: set_books_in_library: books to process= 297
DEBUG:    1.0 DeviceJob: set_books_in_library finished: time= 0.0058841705322265625
DEBUG:    1.0 DeviceJob: metadata_downloaded: updating views
DEBUG:    1.0 DeviceJob: metadata_downloaded: syncing
2024-08-01 21:51:09 [DEBUG] KoboTouchExtended:settings: settings= �����������������������������������������������������������������2024-08-01 21:51:09 [DEBUG] <calibre.utils.config_base.OptionValues object at 0x12c53cb50>
2024-08-01 21:51:10 [DEBUG] KoboTouchExtended:settings: settings= �����������������������������������������������������������������2024-08-01 21:51:10 [DEBUG] <calibre.utils.config_base.OptionValues object at 0x12c53c410>
Failed to request permission for showing notification: The operation couldn’t be completed. (UNErrorDomain error 1.)
DEBUG:    1.0 DeviceJob: metadata_downloaded: refreshing ondevice
DEBUG:    1.0 DeviceJob: metadata_downloaded: sending metadata_available signal
DEBUG:   15.3 KoboUtilites:_on_device_metadata_available - Start
DEBUG:   15.3 Have a Kobo device connected connected
DEBUG:   15.3 BEGIN Get Device Path
DEBUG:   15.3 Root path of device: /Volumes/KOBOeReader/
DEBUG:   15.3 END Get Device Path
DEBUG:   15.3 KoboUtilities:get_device - self.device_path="/Volumes/KOBOeReader/"
DEBUG:   15.3 KoboUtilities:get_device - drive_info: {'main': {'device_store_uuid': '5f536586-86e7-4999-aafa-5e22d5425a4e', 'device_name': 'Kobo Clara 2E', 'location_code': 'main', 'last_library_uuid': None, 'calibre_version': '7.16.0', 'date_last_connected': '2024-08-02T01:51:08.967124+00:00', 'prefix': '/Volumes/KOBOeReader/'}}
DEBUG:   15.3 migrate_library_config_if_required - start
DEBUG:   15.3 get_library_config - library_config: {'SchemaVersion': 0.1, 'profiles': {'Default': {'customColumnOptions': {'currentReadingLocationColumn': '', 'lastReadColumn': '#kobolastread', 'percentReadColumn': '', 'ratingColumn': ''}, 'forDevice': '5f536586-86e7-4999-aafa-5e22d5425a4e', 'profileName': 'Default', 'storeOptionsStore': {'doNotStoreIfReopened': True, 'promptToStore': True, 'storeIfMoreRecent': True, 'storeOnConnect': True}, 'updateOptionsStore': {'doEarlyFirmwareUpdate': False, 'doFirmwareUpdateCheck': False, 'firmwareUpdateCheckLastTime': 0}}}, 'readingPositionChangesStore': {'selectBooksInLibrary': False, 'updeateGoodreadsProgress': False}}
DEBUG:   15.3 get_prefs - start - store_name='storeOptionsStore'
DEBUG:   15.3 KoboUtilities:get_device - device_name: Kobo Clara 2E
DEBUG:   15.3 get_plugin_pref - start - store_name='commonOptionsStore', option='individualDeviceOptions'
DEBUG:   15.3 get_prefs - start - store_name='backupOptionsStore'
DEBUG:   15.3 KoboUtilities:set_toolbar_button_tooltip - start: text='None'
DEBUG:   15.3 KoboUtilities:set_toolbar_button_tooltip - device connected. self.device.fwversion= (4, 38, 23038)
DEBUG:   15.3 KoboUtilities:set_toolbar_button_tooltip - setting to text='Utilities to use with Kobo ereaders

Connected Device: Kobo Clara 2E
Firmware version: 4.38.23038
Driver: KoboTouchExtended'
DEBUG:   15.3 KoboUtilites:_on_device_metadata_available - self.current_device_profile: {'customColumnOptions': {'currentReadingLocationColumn': '', 'lastReadColumn': '#kobolastread', 'percentReadColumn': '', 'ratingColumn': ''}, 'forDevice': '5f536586-86e7-4999-aafa-5e22d5425a4e', 'profileName': 'Default', 'storeOptionsStore': {'storeOnConnect': True, 'promptToStore': True, 'storeIfMoreRecent': True, 'doNotStoreIfReopened': True}, 'updateOptionsStore': {'doEarlyFirmwareUpdate': False, 'doFirmwareUpdateCheck': False, 'firmwareUpdateCheckLastTime': 0}}
DEBUG:   15.3 KoboUtilites:_on_device_metadata_available - self.current_backup_config: {'doDailyBackp': True, 'backupEachCOnnection': False, 'backupCopiesToKeepSpin': 5, 'backupDestDirectory': '/Users/chigh/Dropbox/Backups/KoboReader', 'backupZipDatabase': True}
DEBUG:   15.3 KoboUtilites:_on_device_metadata_available - About to start auto backup
DEBUG:   15.3 auto_backup_device_database - start
DEBUG:   15.3 BEGIN Get Device Path
DEBUG:   15.3 Root path of device: /Volumes/KOBOeReader/
DEBUG:   15.3 END Get Device Path
DEBUG:   15.3 auto_backup_device_database - destination directory= /Users/chigh/Dropbox/Backups/KoboReader
DEBUG:   15.3 auto_backup_device_database - about to get version info from device...
DEBUG:   15.3 auto_backup_device_database - version_info= ['N50641C485441', '4.1.15', '4.38.23038', '4.1.15', '4.1.15', '00000000-0000-0000-0000-000000000386']
DEBUG:   15.3 auto_backup_device_database - device_information= ('Kobo Clara 2E', '', '', '', {'main': {'device_store_uuid': '5f536586-86e7-4999-aafa-5e22d5425a4e', 'device_name': 'Kobo Clara 2E', 'location_code': 'main', 'last_library_uuid': None, 'calibre_version': '7.16.0', 'date_last_connected': '2024-08-02T01:51:10.007176+00:00', 'prefix': '/Volumes/KOBOeReader/'}})
DEBUG:   15.3 auto_backup_device_database - device_name= KoboClara2E
DEBUG:   15.3 auto_backup_device_database - backup_file_template= KoboReader-KoboClara2E-N50641C485441-
DEBUG:   15.3 auto_backup_device_database - backup_options= {'backupDestDirectory': '/Users/chigh/Dropbox/Backups/KoboReader', 'backupCopiesToKeepSpin': 5, 'doDailyBackp': True, 'backupEachCOnnection': False, 'backupZipDatabase': True, 'device_name': 'KoboClara2E', 'serial_number': 'N50641C485441', 'backup_file_template': 'KoboReader-{0}-{1}-{2}', 'database_file': '/Volumes/KOBOeReader/.kobo/KoboReader.sqlite', 'device_path': '/Volumes/KOBOeReader/'}
DEBUG:   15.3 KoboUtilitiesAction::_device_database_backup
DEBUG:   15.3 auto_backup_device_database - end
DEBUG:   15.3 KoboUtilites:_on_device_metadata_available - About to start auto store
DEBUG:   15.3 auto_store_current_bookmark - start
DEBUG:   15.3 Have a Kobo device connected connected
DEBUG:   15.3 BEGIN Get Device Path
DEBUG:   15.3 Root path of device: /Volumes/KOBOeReader/
DEBUG:   15.3 END Get Device Path
DEBUG:   15.3 KoboUtilities:get_device - self.device_path="/Volumes/KOBOeReader/"
DEBUG:   15.3 KoboUtilities:get_device - drive_info: {'main': {'device_store_uuid': '5f536586-86e7-4999-aafa-5e22d5425a4e', 'device_name': 'Kobo Clara 2E', 'location_code': 'main', 'last_library_uuid': None, 'calibre_version': '7.16.0', 'date_last_connected': '2024-08-02T01:51:08.967124+00:00', 'prefix': '/Volumes/KOBOeReader/'}}
DEBUG:   15.3 migrate_library_config_if_required - start
DEBUG:   15.3 get_library_config - library_config: {'SchemaVersion': 0.1, 'profiles': {'Default': {'customColumnOptions': {'currentReadingLocationColumn': '', 'lastReadColumn': '#kobolastread', 'percentReadColumn': '', 'ratingColumn': ''}, 'forDevice': '5f536586-86e7-4999-aafa-5e22d5425a4e', 'profileName': 'Default', 'storeOptionsStore': {'storeOnConnect': True, 'promptToStore': True, 'storeIfMoreRecent': True, 'doNotStoreIfReopened': True}, 'updateOptionsStore': {'doEarlyFirmwareUpdate': False, 'doFirmwareUpdateCheck': False, 'firmwareUpdateCheckLastTime': 0}}}, 'readingPositionChangesStore': {'selectBooksInLibrary': False, 'updeateGoodreadsProgress': False}}
DEBUG:   15.3 get_prefs - start - store_name='storeOptionsStore'
DEBUG:   15.3 KoboUtilities:get_device - device_name: Kobo Clara 2E
DEBUG:   15.3 get_plugin_pref - start - store_name='commonOptionsStore', option='individualDeviceOptions'
DEBUG:   15.3 get_prefs - start - store_name='backupOptionsStore'
DEBUG:   15.3 BEGIN Get Device Path
DEBUG:   15.3 Root path of device: /Volumes/KOBOeReader/
DEBUG:   15.3 END Get Device Path
DEBUG:   15.3 get_column_names - columns_config: {'currentReadingLocationColumn': '', 'lastReadColumn': '#kobolastread', 'percentReadColumn': '', 'ratingColumn': ''}
DEBUG:   15.3 KoboUtilities::_get_fetch_query_for_firmware_version - using fetch_queries: {'epub': 'SELECT c1.ChapterIDBookmarked, c1.adobe_location, c1.ReadStatus, c1.___PercentRead, c1.Attribution, c1.DateLastRead, c1.Title, c1.MimeType, r.rating, c1.contentId FROM content c1 LEFT OUTER JOIN ratings r ON c1.ContentID = r.ContentID WHERE c1.ContentID = ?', 'kepub': 'SELECT c1.ChapterIDBookmarked, c1.adobe_location, c1.ReadStatus, c1.___PercentRead, c1.Attribution, c1.DateLastRead, c1.Title, c1.MimeType, r.rating, c1.contentId FROM content c1 LEFT OUTER JOIN ratings r ON c1.ContentID = r.ContentID WHERE c1.ContentID = ?'}
DEBUG:   15.4 auto_store_current_bookmark::do_books - search_condition= ondevice:True and (None:false or None:<100)
DEBUG:   15.4 auto_store_current_bookmark::do_all_books -- onDeviceIds: 0
DEBUG:   15.4 auto_store_current_bookmark::do_all_books -- onDevice_book_paths: 0
DEBUG:   15.4 auto_store_current_bookmark::do_books - Finish
DEBUG:   15.4 Have a Kobo device connected connected
DEBUG:   15.4 BEGIN Get Device Path
DEBUG:   15.4 Root path of device: /Volumes/KOBOeReader/
DEBUG:   15.4 END Get Device Path
DEBUG:   15.4 KoboUtilities:get_device - self.device_path="/Volumes/KOBOeReader/"
DEBUG:   15.4 KoboUtilities:get_device - drive_info: {'main': {'device_store_uuid': '5f536586-86e7-4999-aafa-5e22d5425a4e', 'device_name': 'Kobo Clara 2E', 'location_code': 'main', 'last_library_uuid': None, 'calibre_version': '7.16.0', 'date_last_connected': '2024-08-02T01:51:08.967124+00:00', 'prefix': '/Volumes/KOBOeReader/'}}
DEBUG:   15.4 migrate_library_config_if_required - start
DEBUG:   15.4 get_library_config - library_config: {'SchemaVersion': 0.1, 'profiles': {'Default': {'customColumnOptions': {'currentReadingLocationColumn': '', 'lastReadColumn': '#kobolastread', 'percentReadColumn': '', 'ratingColumn': ''}, 'forDevice': '5f536586-86e7-4999-aafa-5e22d5425a4e', 'profileName': 'Default', 'storeOptionsStore': {'storeOnConnect': True, 'promptToStore': True, 'storeIfMoreRecent': True, 'doNotStoreIfReopened': True}, 'updateOptionsStore': {'doEarlyFirmwareUpdate': False, 'doFirmwareUpdateCheck': False, 'firmwareUpdateCheckLastTime': 0}}}, 'readingPositionChangesStore': {'selectBooksInLibrary': False, 'updeateGoodreadsProgress': False}}
DEBUG:   15.4 get_prefs - start - store_name='storeOptionsStore'
DEBUG:   15.4 KoboUtilities:get_device - device_name: Kobo Clara 2E
DEBUG:   15.4 get_plugin_pref - start - store_name='commonOptionsStore', option='individualDeviceOptions'
DEBUG:   15.4 get_prefs - start - store_name='backupOptionsStore'
DEBUG:   15.4 rebuild_menus - self.supports_ratings=True, self.supports_tiles=True
DEBUG:   15.4 KoboUtilities:set_toolbar_button_tooltip - start: text='None'
DEBUG:   15.4 KoboUtilities:set_toolbar_button_tooltip - device connected. self.device.fwversion= (4, 38, 23038)
DEBUG:   15.4 KoboUtilities:set_toolbar_button_tooltip - setting to text='Utilities to use with Kobo ereaders

Connected Device: Kobo Clara 2E
Firmware version: 4.38.23038
Driver: KoboTouchExtended'
DEBUG:   15.4 rebuild_menus - have device.
DeviceJob: 2 Get list of books on device callback returned
Job: 3 Backing up Kobo device database started
DEBUG:    0.0 do_device_database_backup - start
logger - do_device_database_backup - start
DEBUG:    0.0 do_device_database_backup - backup_options= {'backupDestDirectory': '/Users/chigh/Dropbox/Backups/KoboReader', 'backupCopiesToKeepSpin': 5, 'doDailyBackp': True, 'backupEachCOnnection': False, 'backupZipDatabase': True, 'device_name': 'KoboClara2E', 'serial_number': 'N50641C485441', 'backup_file_template': 'KoboReader-{0}-{1}-{2}', 'database_file': '/Volumes/KOBOeReader/.kobo/KoboReader.sqlite', 'device_path': '/Volumes/KOBOeReader/'}
DEBUG:    0.0 do_device_database_backup - copies_to_keep= 5
DEBUG:    0.0 do_device_database_backup - backup_file_search= KoboReader-KoboClara2E-N50641C485441-20240801-[0-9][0-9][0-9][0-9][0-9][0-9].*
DEBUG:    0.0 do_device_database_backup - backup_file_search= /Users/chigh/Dropbox/Backups/KoboReader/KoboReader-KoboClara2E-N50641C485441-20240801-[0-9][0-9][0-9][0-9][0-9][0-9].*
DEBUG:    0.0 do_device_database_backup - backup_files= ['/Users/chigh/Dropbox/Backups/KoboReader/KoboReader-KoboClara2E-N50641C485441-20240801-203812.zip']
DEBUG:    0.0 auto_backup_device_database - Backup already done today
DeviceJob: 3 Backing up Kobo device database done, calling callback
DeviceJob: 3 Backing up Kobo device database callback returned
Job: 2 Get list of books on device finished
No details available.
Job: 3 Backing up Kobo device database finished
No details available.
[22.77] splash screen hidden
[22.77] Started up in 22.77 seconds with 226 books
2024-08-01 21:51:26 [DEBUG] KoboTouchExtended:settings: settings= �����������������������������������������������������������������2024-08-01 21:51:26 [DEBUG] <calibre.utils.config_base.OptionValues object at 0x12c522150>
Failed to request permission for showing notification: The operation couldn’t be completed. (UNErrorDomain error 1.)
Job: 4 Upload one book to the device: Blind Man's Bluff started
Device using plugboard epub KOBOTOUCHEXTENDED None
Setting metadata in: Blind Man's Bluff at: /var/folders/hl/_6t34nln4z153hppjr5znf400000gp/C/calibre_7.16.0_tmp_m_ue35xd/ntmbf1qscaltmpfmt.epub
DEBUG:   17.3 KoboTouch:upload_books - 1 books
DEBUG:   17.3 KoboTouch:upload_books - files= ['/var/folders/hl/_6t34nln4z153hppjr5znf400000gp/C/calibre_7.16.0_tmp_m_ue35xd/ntmbf1qscaltmpfmt.epub']
DEBUG:   17.3 KoboTouch:upload_books: Processing book: Blind Man's Bluff by Sherry Sontag and Christopher Drew
DEBUG:   17.3 KoboTouch:upload_books: file=/var/folders/hl/_6t34nln4z153hppjr5znf400000gp/C/calibre_7.16.0_tmp_m_ue35xd/ntmbf1qscaltmpfmt.epub, name=Blind Man's Bluff - Sherry Sontag & Christopher Drew_289.epub
2024-08-01 21:51:26 [DEBUG] Creating KePub Container for ePub at /var/folders/hl/_6t34nln4z153hppjr5znf400000gp/C/calibre_7.16.0_tmp_m_ue35xd/ntmbf1qscaltmpfmt.epub
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/001.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/002.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/001.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/002.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/003.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/003.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/004.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/004.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/005.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/005.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/006.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/006.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/007.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/007.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/008.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/009.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/008.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/010.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/009.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/011.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/010.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/011.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/012.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/012.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/013.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/013.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/014.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/014.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/015.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/015.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/016.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/016.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/017.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/018.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/019.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/Insert_01.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/Insert_02.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/Insert_03.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/Insert_04.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/Insert_05.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/Insert_06.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/Insert_07.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/Insert_08.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/Insert_09.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/Insert_10.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/Insert_11.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/Insert_12.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/Insert_13.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/Insert_14.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/Insert_15.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/Insert_16.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/020.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/021.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/022.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/023.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/024.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/025.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/026.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/027.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/028.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/029.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/030.html
2024-08-01 21:51:26 [DEBUG] Starting thread: func=forced_cleanup, name=Ops/notes.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/017.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/018.html
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/019.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/Insert_01.html
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/Insert_02.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/Insert_03.html
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/Insert_04.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/Insert_05.html
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/Insert_06.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/Insert_07.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/Insert_08.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/Insert_09.html
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/Insert_10.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/Insert_11.html
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/Insert_12.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/Insert_13.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/Insert_15.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/Insert_14.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/Insert_16.html
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/020.html
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/022.html
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/021.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/025.html
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/024.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/023.html
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/026.html
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/027.html
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/028.html
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/030.html
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/029.html
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] Forcing cleanup for file Ops/notes.html
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [DEBUG] thread processing None finished
2024-08-01 21:51:26 [WARN] kepubify_book - self.kepubify_template=''
2024-08-01 21:51:26 [WARN] kepubify_book - returning kepubify_book='True'
2024-08-01 21:51:26 [INFO] KoboTouchExtended:_modify_epub:Adding basic Kobo features to Blind Man's Bluff by Sherry Sontag and Christopher Drew
2024-08-01 21:51:26 [INFO] KoboTouchExtended:_modify_epub:Failed conversions will raise exceptions
2024-08-01 21:51:26 [DEBUG] Found meta node with name=cover
2024-08-01 21:51:26 [INFO] Found cover image ID 'cover'
2024-08-01 21:51:26 [ERROR] Failed to process Blind Man's Bluff by Sherry Sontag and Christopher Drew: name 'v' is not defined
Traceback (most recent call last):
  File "calibre_plugins.kobotouch_extended.device.driver", line 187, in _modify_epub
    common.modify_epub(
  File "calibre_plugins.kobotouch_extended.common", line 141, in modify_epub
    f'./opf:manifest/opf:item[@id="{v}"]',
                                    ^
NameError: name 'v' is not defined

Failed to process Blind Man's Bluff by Sherry Sontag and Christopher Drew: name 'v' is not defined

Traceback (most recent call last):
  File "calibre_plugins.kobotouch_extended.device.driver", line 187, in _modify_epub
    common.modify_epub(
  File "calibre_plugins.kobotouch_extended.common", line 141, in modify_epub
    f'./opf:manifest/opf:item[@id="{v}"]',
                                    ^
NameError: name 'v' is not defined

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "calibre/gui2/device.py", line 112, in run
  File "calibre/gui2/device.py", line 646, in _upload_books
  File "calibre_plugins.kobotouch_extended.device.driver", line 342, in upload_books
    return super(KOBOTOUCHEXTENDED, self).upload_books(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "calibre/devices/kobo/driver.py", line 2270, in upload_books
  File "calibre_plugins.kobotouch_extended.device.driver", line 211, in _modify_epub
    raise e.__class__(msg).with_traceback(tb)
  File "calibre_plugins.kobotouch_extended.device.driver", line 187, in _modify_epub
    common.modify_epub(
  File "calibre_plugins.kobotouch_extended.common", line 141, in modify_epub
    f'./opf:manifest/opf:item[@id="{v}"]',
                                    ^
NameError: Failed to process Blind Man's Bluff by Sherry Sontag and Christopher Drew: name 'v' is not defined

DeviceJob: 4 Upload one book to the device: Blind Man's Bluff done, calling callback
DeviceJob: 4 Upload one book to the device: Blind Man's Bluff callback returned
Job: 4 Upload one book to the device: Blind Man's Bluff finished
Failed to process Blind Man's Bluff by Sherry Sontag and Christopher Drew: name 'v' is not defined

    Traceback (most recent call last):
      File "calibre_plugins.kobotouch_extended.device.driver", line 187, in _modify_epub
        common.modify_epub(
      File "calibre_plugins.kobotouch_extended.common", line 141, in modify_epub
        f'./opf:manifest/opf:item[@id="{v}"]',
                                        ^
    NameError: name 'v' is not defined

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "calibre/gui2/device.py", line 112, in run
      File "calibre/gui2/device.py", line 646, in _upload_books
      File "calibre_plugins.kobotouch_extended.device.driver", line 342, in upload_books
        return super(KOBOTOUCHEXTENDED, self).upload_books(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "calibre/devices/kobo/driver.py", line 2270, in upload_books
      File "calibre_plugins.kobotouch_extended.device.driver", line 211, in _modify_epub
        raise e.__class__(msg).with_traceback(tb)
      File "calibre_plugins.kobotouch_extended.device.driver", line 187, in _modify_epub
        common.modify_epub(
      File "calibre_plugins.kobotouch_extended.common", line 141, in modify_epub
        f'./opf:manifest/opf:item[@id="{v}"]',
                                        ^
    NameError: Failed to process Blind Man's Bluff by Sherry Sontag and Christopher Drew: name 'v' is not defined

Additional context

Add any other information you think might be helpful.

chigh commented 2 months ago

I forgot I had a backup. Restored 3.6.6 of KePub Output and 3.6.7 of KoboTouchExtended, and it's back working.

chigh commented 2 months ago

Thanks! Confirming it works.