From 48f9ff3def2b3cf40fe45ef8ae838f1096750474 Mon Sep 17 00:00:00 2001 From: Martin Brodbeck Date: Wed, 5 Mar 2025 15:49:48 +0100 Subject: [PATCH 1/2] Bump supported dbversion in kobo/tolino driver New tolino Shine 5 firmware 5.6.209315 uses db version 191. No significant db changes noticed. --- src/calibre/devices/kobo/driver.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py index bb355adc4c..d8e65cc946 100644 --- a/src/calibre/devices/kobo/driver.py +++ b/src/calibre/devices/kobo/driver.py @@ -1427,7 +1427,7 @@ class KOBOTOUCH(KOBO): ' Based on the existing Kobo driver by %s.') % KOBO.author # icon = 'devices/kobotouch.jpg' - supported_dbversion = 190 + supported_dbversion = 191 min_supported_dbversion = 53 min_dbversion_series = 65 min_dbversion_externalid = 65 @@ -1442,7 +1442,7 @@ class KOBOTOUCH(KOBO): # Starting with firmware version 3.19.x, the last number appears to be is a # build number. A number will be recorded here but it can be safely ignored # when testing the firmware version. - max_supported_fwversion = (5, 4, 197982) + max_supported_fwversion = (5, 6, 209315) # The following document firmware versions where new function or devices were added. # Not all are used, but this feels a good place to record it. min_fwversion_shelves = (2, 0, 0) From 697a061da38682eb4e5420b04475d330d5de5366 Mon Sep 17 00:00:00 2001 From: Martin Brodbeck Date: Wed, 5 Mar 2025 19:52:33 +0100 Subject: [PATCH 2/2] Adapted to new ImageID names For a pointless reason, Tolinos with firmware 5.6.209315 (dbversion 191) create a different BookID (ImageID). --- src/calibre/devices/kobo/driver.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py index d8e65cc946..885cc17d01 100644 --- a/src/calibre/devices/kobo/driver.py +++ b/src/calibre/devices/kobo/driver.py @@ -2852,7 +2852,12 @@ class KOBOTOUCH(KOBO): ImageID = ContentID.replace('/', '_') ImageID = ImageID.replace(' ', '_') ImageID = ImageID.replace(':', '_') - ImageID = ImageID.replace('.', '_') + if self.isTolinoDevice() and self.dbversion >= 191: + ImageID_split = ImageID.rsplit('.', 1) + ImageID_split[0] = ImageID_split[0].replace('.', '_') + ImageId = '.'.join(ImageID_split) + else: + ImageID = ImageID.replace('.', '_') return ImageID def images_path(self, path, imageId=None):