diff --git a/Convert/src/main/kotlin/no/iktdev/streamit/content/convert/ConvertRunner.kt b/Convert/src/main/kotlin/no/iktdev/streamit/content/convert/ConvertRunner.kt index bdb4906a..f0aea48a 100644 --- a/Convert/src/main/kotlin/no/iktdev/streamit/content/convert/ConvertRunner.kt +++ b/Convert/src/main/kotlin/no/iktdev/streamit/content/convert/ConvertRunner.kt @@ -34,17 +34,24 @@ class ConvertRunner(val referenceId: String, val listener: IConvertListener) { val syncedDialogs = Syncro().sync(dialogs) - val converted = Export(inFile, syncedDialogs).write() - converted.forEach { - val item = ConvertWork( - inFile = inFile.absolutePath, - collection = subtitleInfo.collection, - language = subtitleInfo.language, - outFile = it.absolutePath - ) - withContext(Dispatchers.Default) { - listener.onEnded(referenceId, subtitleInfo, work = item) - } + try { + val converted = Export(inFile, syncedDialogs).write() + converted.forEach { + val item = ConvertWork( + inFile = inFile.absolutePath, + collection = subtitleInfo.collection, + language = subtitleInfo.language, + outFile = it.absolutePath + ) + withContext(Dispatchers.Default) { + listener.onEnded(referenceId, subtitleInfo, work = item) + } + } + } catch (e: Exception) { + e.printStackTrace() + withContext(Dispatchers.Default) { + listener.onError(referenceId, subtitleInfo, "See log") + } } } diff --git a/Reader/src/main/kotlin/no/iktdev/streamit/content/reader/collector/EncodedVideoConsumer.kt b/Reader/src/main/kotlin/no/iktdev/streamit/content/reader/collector/EncodedVideoConsumer.kt index 95525048..1dafdd54 100644 --- a/Reader/src/main/kotlin/no/iktdev/streamit/content/reader/collector/EncodedVideoConsumer.kt +++ b/Reader/src/main/kotlin/no/iktdev/streamit/content/reader/collector/EncodedVideoConsumer.kt @@ -14,6 +14,7 @@ import no.iktdev.streamit.library.kafka.dto.StatusType import no.iktdev.streamit.library.kafka.listener.collector.CollectorMessageListener import no.iktdev.streamit.library.kafka.listener.collector.ICollectedMessagesEvent import no.iktdev.streamit.library.kafka.listener.deserializer.IMessageDataDeserialization +import org.jetbrains.exposed.sql.transactions.transaction import org.springframework.stereotype.Service import java.io.File @@ -66,10 +67,15 @@ class EncodedVideoConsumer: DefaultKafkaReader("collectorConsumerEncodedVideo"), val contentType = metadata?.type ?: return - val iid = if (contentType == "movie") MovieQuery(videoFileNameWithExtension).insertAndGetId() else null + val iid = if (contentType == "movie") transaction { + MovieQuery(videoFileNameWithExtension).insertAndGetId() + } else null if (serieData != null) { - val success = SerieQuery(serieData.title, serieData.episode, serieData.season, fileData.title, videoFileNameWithExtension).insertAndGetStatus() + val success = transaction { + SerieQuery(serieData.title, serieData.episode, serieData.season, fileData.title, videoFileNameWithExtension) + .insertAndGetStatus() + } if (!success) return } @@ -86,8 +92,10 @@ class EncodedVideoConsumer: DefaultKafkaReader("collectorConsumerEncodedVideo"), } val metaGenre = metadata.genres val gq = GenreQuery(*metaGenre.toTypedArray()) - gq.insertAndGetIds() - val gids = gq.getIds().joinToString(",") + transaction { + gq.insertAndGetIds() + } + val gids = transaction { gq.getIds().joinToString(",") } val cq = CatalogQuery( title = fileData.title, @@ -97,14 +105,16 @@ class EncodedVideoConsumer: DefaultKafkaReader("collectorConsumerEncodedVideo"), iid = iid, genres = gids ) - val cid = cq.insertAndGetId() ?: cq.getId() ?: return + val cid = transaction { cq.insertAndGetId() ?: cq.getId() } ?: return if (!metadata.summary.isNullOrBlank()) { val summary = metadata.summary ?: return - SummaryQuery( - cid = cid, - language = "eng", // TODO: Fix later, - description = summary - ) + transaction { + SummaryQuery( + cid = cid, + language = "eng", // TODO: Fix later, + description = summary + ) + } } val message = Message(referenceId = collection.getReferenceId() ?: "M.I.A", status = Status(StatusType.SUCCESS)) diff --git a/Reader/src/main/kotlin/no/iktdev/streamit/content/reader/collector/ExtractedSubtitleConsumer.kt b/Reader/src/main/kotlin/no/iktdev/streamit/content/reader/collector/ExtractedSubtitleConsumer.kt index efe948a0..388b2578 100644 --- a/Reader/src/main/kotlin/no/iktdev/streamit/content/reader/collector/ExtractedSubtitleConsumer.kt +++ b/Reader/src/main/kotlin/no/iktdev/streamit/content/reader/collector/ExtractedSubtitleConsumer.kt @@ -10,6 +10,7 @@ import no.iktdev.streamit.library.kafka.dto.Message import no.iktdev.streamit.library.kafka.listener.SimpleMessageListener import no.iktdev.streamit.library.kafka.listener.deserializer.IMessageDataDeserialization import org.apache.kafka.clients.consumer.ConsumerRecord +import org.jetbrains.exposed.sql.transactions.transaction import java.io.File class ExtractedSubtitleConsumer : DefaultKafkaReader("collectorConsumerExtractedSubtitle") { @@ -26,12 +27,14 @@ class ExtractedSubtitleConsumer : DefaultKafkaReader("collectorConsumerExtracted } val of = File(workResult.outFile) - SubtitleQuery( - title = of.nameWithoutExtension, - language = workResult.language, - collection = workResult.collection, - format = of.extension.uppercase() - ).insertAndGetStatus() + transaction { + SubtitleQuery( + title = of.nameWithoutExtension, + language = workResult.language, + collection = workResult.collection, + format = of.extension.uppercase() + ).insertAndGetStatus() + } } }