From 7d2afdcec2564ac0d54f83c661ddc83a07e368ed Mon Sep 17 00:00:00 2001 From: Daniel Pecos Martinez Date: Tue, 15 Jul 2025 07:54:02 +0200 Subject: [PATCH] Use tempfile API to create local APNX file --- src/calibre/devices/mtp/driver.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/calibre/devices/mtp/driver.py b/src/calibre/devices/mtp/driver.py index 1903cc7335..7837cd1de3 100644 --- a/src/calibre/devices/mtp/driver.py +++ b/src/calibre/devices/mtp/driver.py @@ -644,13 +644,13 @@ class MTP_DEVICE(BASE): def upload_apnx(self, parent, filename, storage, mi, filepath): from calibre.devices.kindle.apnx import APNXBuilder - apnx_builder = APNXBuilder() + import tempfile - name = filename.rpartition('.')[0] - apnx_filename = f'{name[:-2]}.apnx' - apnx_local_path = f'{os.path.join('/tmp', apnx_filename)}' + apnx_local_path = tempfile.NamedTemporaryFile(prefix='calibre-apnx-', suffix='.apnx', delete=False).name try: + apnx_builder = APNXBuilder() + custom_page_count = 0 cust_col_name = self.get_pref('apnx').get('custom_column_page_count', None) if cust_col_name: @@ -677,6 +677,8 @@ class MTP_DEVICE(BASE): apnx_stream = open(apnx_local_path, 'rb') try: + name = filename.rpartition('.')[0] + apnx_filename = f'{name[:-2]}.apnx' apnx_path = parent.name, f'{name[:-2]}.sdr', apnx_filename sdr_parent = self.ensure_parent(storage, apnx_path) self.put_file(sdr_parent, apnx_filename, apnx_stream, apnx_size)