From b1482e1b3d9f73c4213123614a79c3f0c06a1f32 Mon Sep 17 00:00:00 2001 From: bayang Date: Wed, 7 Sep 2022 21:17:34 +0200 Subject: [PATCH] fix: prevent temporary cover images conflicts in caches #41 --- .../jelu/service/metadata/FetchMetadataService.kt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/io/github/bayang/jelu/service/metadata/FetchMetadataService.kt b/src/main/kotlin/io/github/bayang/jelu/service/metadata/FetchMetadataService.kt index 9fce3363..86588007 100644 --- a/src/main/kotlin/io/github/bayang/jelu/service/metadata/FetchMetadataService.kt +++ b/src/main/kotlin/io/github/bayang/jelu/service/metadata/FetchMetadataService.kt @@ -68,8 +68,19 @@ class FetchMetadataService( commandArray.add("-p") commandArray.add("Amazon.com") } - bookFileName += ".jpg" + // add a bit of randomness to prevent images with same names. + // Otherwise different files with same names are cached, see issue #41 + val now = System.currentTimeMillis() + bookFileName += "-$now.jpg" val targetCover = File(properties.files.images, bookFileName) + if (targetCover != null && targetCover.exists()) { + try { + val deleted = targetCover.delete() + logger.trace { "deleted already existing cover temporary image ${targetCover.absolutePath}" } + } catch (e: Exception) { + logger.error(e) { "failed to delete image ${targetCover.absolutePath}" } + } + } if (fetchCover) { commandArray.add("-c") commandArray.add(targetCover.absolutePath)