Storing processed files

This commit is contained in:
bskjon 2025-02-02 14:38:58 +01:00
parent d2c1e8ccb7
commit 4638560c30
3 changed files with 43 additions and 1 deletions

View File

@ -19,7 +19,7 @@ import org.springframework.boot.runApplication
import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Bean
val log = KotlinLogging.logger {} val log = KotlinLogging.logger {}
private lateinit var eventDatabase: EventsDatabase lateinit var eventDatabase: EventsDatabase
private lateinit var eventsManager: EventsManager private lateinit var eventsManager: EventsManager
lateinit var runnerManager: RunnerManager lateinit var runnerManager: RunnerManager

View File

@ -186,6 +186,12 @@ class CompletedTaskListener : CoordinatorEventListener() {
e.printStackTrace() e.printStackTrace()
} }
ProcessedItemsStore.store(
mediaInfo.title,
events,
(listOfNotNull(newVideoPath?.second) + (newSubtitles?.map { it.destination } ?: emptyList()))
)
if (!doNotProduceComplete) { if (!doNotProduceComplete) {
onProduceEvent(MediaProcessCompletedEvent( onProduceEvent(MediaProcessCompletedEvent(

View File

@ -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<Event>, processedFiles: List<String>) {
val inputFile = events.findFirstEventOf<MediaProcessStartEvent>()?.data?.file ?: return
val isEncoded = events.findEventsOf<EncodeWorkPerformedEvent>().any { it.isSuccessful() }
val isExtracted = events.findEventsOf<EncodeWorkPerformedEvent>().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()
}
}
}