kobo driver: Make reloading of device version info explicit when device is opened

This commit is contained in:
Kovid Goyal 2025-03-13 13:55:37 +05:30
parent f25db99e0b
commit 59f640f122
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -173,15 +173,11 @@ class KOBO(USBMS):
def initialize(self):
USBMS.initialize(self)
self.dbversion = 7
self._device_version_info = None
def eject(self):
self._device_version_info = None
super().eject()
def device_version_info(self):
def device_version_info(self, reload: bool = False):
debug_print('device_version_info - start')
if not self._device_version_info:
if self._device_version_info is None or reload:
self._device_version_info = []
version_file = os.path.join(self._main_prefix, KOBO_ROOT_DIR_NAME, 'version')
debug_print(f'device_version_info - version_file={version_file}')
if os.path.isfile(version_file):
@ -1603,6 +1599,7 @@ class KOBOTOUCH(KOBO):
def post_open_callback(self):
from calibre.devices.kobo.db import Database
self.device_version_info(reload=True)
# delete empty directories in root they get left behind when deleting
# books on device.
for prefix in (self._main_prefix, self._card_a_prefix, self._card_b_prefix):