From f48e7419e9b1b4a529bd89c72c9314c22d55be5d Mon Sep 17 00:00:00 2001 From: Brage Date: Sat, 2 Mar 2024 00:48:49 +0100 Subject: [PATCH] Minor adjustments --- apps/converter/build.gradle.kts | 2 +- .../tasks/event/DownloadAndStoreCoverTask.kt | 20 ++++++++++++++++--- .../shared/common/DownloadClient.kt | 12 ++++++++--- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/apps/converter/build.gradle.kts b/apps/converter/build.gradle.kts index cd684387..cdb857a0 100644 --- a/apps/converter/build.gradle.kts +++ b/apps/converter/build.gradle.kts @@ -43,7 +43,7 @@ dependencies { //implementation(project(mapOf("path" to ":shared"))) implementation("no.iktdev:exfl:0.0.13-SNAPSHOT") - implementation("no.iktdev.library:subtitle:1.7.7-SNAPSHOT") + implementation("no.iktdev.library:subtitle:1.7.8-SNAPSHOT") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1") diff --git a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasks/event/DownloadAndStoreCoverTask.kt b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasks/event/DownloadAndStoreCoverTask.kt index 36c7ee63..329350f8 100644 --- a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasks/event/DownloadAndStoreCoverTask.kt +++ b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasks/event/DownloadAndStoreCoverTask.kt @@ -49,14 +49,28 @@ class DownloadAndStoreCoverTask(@Autowired override var coordinator: Coordinator return SimpleMessageData(Status.ERROR, "Check for output directory for cover storage failed for $serviceId") val client = DownloadClient(coverData.url, File(coverData.outDir), coverData.outFileBaseName) - val result = runBlocking { - client.download() + + val outFile = runBlocking { + client.getOutFile() } + + var message: String? = null + val result = if (outFile?.exists() == true) { + message = "${outFile.name} already exists" + outFile + } else if (outFile != null) { + runBlocking { + client.download(outFile) + } + } else { + null + } + return if (result == null) { SimpleMessageData(Status.ERROR, "Could not download cover, check logs") } else { val status = if (result.exists() && result.canRead()) Status.COMPLETED else Status.ERROR - CoverDownloadWorkPerformed(status = status, coverFile = result.absolutePath) + CoverDownloadWorkPerformed(status = status, message = message, coverFile = result.absolutePath) } } } \ No newline at end of file diff --git a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/DownloadClient.kt b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/DownloadClient.kt index 05728756..4f704150 100644 --- a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/DownloadClient.kt +++ b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/DownloadClient.kt @@ -31,15 +31,21 @@ open class DownloadClient(val url: String, val outDir: File, val baseName: Strin return ((read * 100) / total) } - suspend fun download(): File? = withContext(Dispatchers.IO) { + suspend fun getOutFile(): File? = withContext(Dispatchers.IO) { val extension = getExtension() ?: throw UnsupportedFormatException("Provided url does not contain a supported file extension") val outFile = outDir.using("$baseName.$extension") - if (!outDir.exists()) + if (!outDir.exists()) { + log.error { "Unable to create parent folder for ${outFile.name}. Download skipped!" } return@withContext null + } + return@withContext outFile + } + + suspend fun download(outFile: File): File? = withContext(Dispatchers.IO) { if (outFile.exists()) { log.info { "${outFile.name} already exists. Download skipped!" } - return@withContext outFile + return@withContext null } val inputStream = http.inputStream