From 2ac0d0fcf0a164c6e72bc3cd8e957310385fc2b6 Mon Sep 17 00:00:00 2001 From: Martin Brodbeck Date: Sun, 11 Aug 2024 15:55:36 +0200 Subject: [PATCH 1/3] Books from the Tolino Cloud are EPUBs (not KEPUBs). Add MimeType 'application/epub+zip' so that these books are also being listed. --- src/calibre/devices/kobo/driver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py index 4e2282eed2..a1e43adda3 100644 --- a/src/calibre/devices/kobo/driver.py +++ b/src/calibre/devices/kobo/driver.py @@ -716,7 +716,7 @@ class KOBO(USBMS): # for calibre's reference path = self._main_prefix + path + '.kobo' # print "Path: " + path - elif (ContentType == "6" or ContentType == "10") and MimeType == 'application/x-kobo-epub+zip': + elif (ContentType == "6" or ContentType == "10") and (MimeType == 'application/x-kobo-epub+zip' or MimeType == 'application/epub+zip'): if path.startswith("file:///mnt/onboard/"): path = self._main_prefix + path.replace("file:///mnt/onboard/", '') else: From e75ea57e41c84b6abfdd07c86ed10f66e747f0de Mon Sep 17 00:00:00 2001 From: Martin Brodbeck Date: Sun, 11 Aug 2024 18:37:22 +0200 Subject: [PATCH 2/3] Check for tolino device. --- src/calibre/devices/kobo/driver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py index a1e43adda3..0498f2d07f 100644 --- a/src/calibre/devices/kobo/driver.py +++ b/src/calibre/devices/kobo/driver.py @@ -716,7 +716,7 @@ class KOBO(USBMS): # for calibre's reference path = self._main_prefix + path + '.kobo' # print "Path: " + path - elif (ContentType == "6" or ContentType == "10") and (MimeType == 'application/x-kobo-epub+zip' or MimeType == 'application/epub+zip'): + elif (ContentType == "6" or ContentType == "10") and (MimeType == 'application/x-kobo-epub+zip' or (MimeType == 'application/epub+zip' and self.isTolinoDevice())): if path.startswith("file:///mnt/onboard/"): path = self._main_prefix + path.replace("file:///mnt/onboard/", '') else: From 2682901d7811b182b1148dbf0c0582e829ae7956 Mon Sep 17 00:00:00 2001 From: Martin Brodbeck Date: Sun, 11 Aug 2024 18:38:36 +0200 Subject: [PATCH 3/3] Handle more tolino specific cases. --- src/calibre/devices/kobo/driver.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py index 0498f2d07f..abaf3360ac 100644 --- a/src/calibre/devices/kobo/driver.py +++ b/src/calibre/devices/kobo/driver.py @@ -2173,7 +2173,7 @@ class KOBOTOUCH(KOBO): def path_from_contentid(self, ContentID, ContentType, MimeType, oncard, externalId=None): path = ContentID - if not (externalId or MimeType == 'application/octet-stream'): + if not (externalId or MimeType == 'application/octet-stream' or (self.isTolinoDevice() and MimeType == 'audio/mpeg')): return super().path_from_contentid(ContentID, ContentType, MimeType, oncard) if oncard == 'cardb': @@ -2182,6 +2182,8 @@ class KOBOTOUCH(KOBO): if (ContentType == "6" or ContentType == "10"): if (MimeType == 'application/octet-stream'): # Audiobooks purchased from Kobo are in a different location. path = self._main_prefix + KOBO_ROOT_DIR_NAME + '/audiobook/' + path + elif (MimeType == 'audio/mpeg' and self.isTolinoDevice()): + path = self._main_prefix + KOBO_ROOT_DIR_NAME + '/audiobook/' + path elif path.startswith("file:///mnt/onboard/"): path = self._main_prefix + path.replace("file:///mnt/onboard/", '') elif path.startswith("file:///mnt/sd/"):