From 4638560c305be1272947f73cde00a30b094f6cc7 Mon Sep 17 00:00:00 2001 From: bskjon Date: Sun, 2 Feb 2025 14:38:58 +0100 Subject: [PATCH] Storing processed files --- .../coordinator/CoordinatorApplication.kt | 2 +- .../listeners/CompletedTaskListener.kt | 6 ++++ .../mapping/store/ProcessedItemsStore.kt | 36 +++++++++++++++++++ 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/mapping/store/ProcessedItemsStore.kt diff --git a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/CoordinatorApplication.kt b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/CoordinatorApplication.kt index 8a6afd4f..a1c2b449 100644 --- a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/CoordinatorApplication.kt +++ b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/CoordinatorApplication.kt @@ -19,7 +19,7 @@ import org.springframework.boot.runApplication import org.springframework.context.annotation.Bean val log = KotlinLogging.logger {} -private lateinit var eventDatabase: EventsDatabase +lateinit var eventDatabase: EventsDatabase private lateinit var eventsManager: EventsManager lateinit var runnerManager: RunnerManager diff --git a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/listeners/CompletedTaskListener.kt b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/listeners/CompletedTaskListener.kt index 5e7b0dbc..c9ce1eb1 100644 --- a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/listeners/CompletedTaskListener.kt +++ b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/listeners/CompletedTaskListener.kt @@ -186,6 +186,12 @@ class CompletedTaskListener : CoordinatorEventListener() { e.printStackTrace() } + ProcessedItemsStore.store( + mediaInfo.title, + events, + (listOfNotNull(newVideoPath?.second) + (newSubtitles?.map { it.destination } ?: emptyList())) + ) + if (!doNotProduceComplete) { onProduceEvent(MediaProcessCompletedEvent( diff --git a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/mapping/store/ProcessedItemsStore.kt b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/mapping/store/ProcessedItemsStore.kt new file mode 100644 index 00000000..7b1668a5 --- /dev/null +++ b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/mapping/store/ProcessedItemsStore.kt @@ -0,0 +1,36 @@ +package no.iktdev.mediaprocessing.coordinator.tasksV2.mapping.store + +import com.google.gson.Gson +import mu.KotlinLogging +import no.iktdev.eventi.data.isSuccessful +import no.iktdev.mediaprocessing.coordinator.eventDatabase +import no.iktdev.mediaprocessing.coordinator.getStoreDatabase +import no.iktdev.mediaprocessing.shared.common.contract.data.* +import no.iktdev.mediaprocessing.shared.common.database.tables.processed +import no.iktdev.streamit.library.db.executeOrException +import no.iktdev.streamit.library.db.withTransaction +import org.jetbrains.exposed.sql.insert + +object ProcessedItemsStore { + val log = KotlinLogging.logger {} + + fun store(title: String, events: List, processedFiles: List) { + val inputFile = events.findFirstEventOf()?.data?.file ?: return + + val isEncoded = events.findEventsOf().any { it.isSuccessful() } + val isExtracted = events.findEventsOf().any { it.isSuccessful() } + + withTransaction(eventDatabase.database.database, block = { + processed.insert { + it[this.title] = title + it[this.fileName] = inputFile + it[this.processedFiles] = Gson().toJson(processedFiles) + it[this.encoded] = isEncoded + it[this.extracted] = isExtracted + } + }) { + it.printStackTrace() + } + + } +} \ No newline at end of file