This commit is contained in:
Brage 2023-07-25 00:46:01 +02:00
parent 1ba7142045
commit e560824b26
3 changed files with 16 additions and 3 deletions

View File

@ -1,5 +1,7 @@
package no.iktdev.streamit.content.convert package no.iktdev.streamit.content.convert
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import no.iktdev.library.subtitle.Syncro import no.iktdev.library.subtitle.Syncro
import no.iktdev.library.subtitle.export.Export import no.iktdev.library.subtitle.export.Export
import no.iktdev.library.subtitle.reader.BaseReader import no.iktdev.library.subtitle.reader.BaseReader
@ -17,10 +19,15 @@ class ConvertRunner(val referenceId: String, val listener: IConvertListener) {
val reader = getReade(subtitleInfo.inputFile) val reader = getReade(subtitleInfo.inputFile)
val dialogs = reader?.read() val dialogs = reader?.read()
if (dialogs.isNullOrEmpty()) { if (dialogs.isNullOrEmpty()) {
withContext(Dispatchers.Default) {
listener.onError(referenceId, subtitleInfo, "Dialogs read from file is null or empty!") listener.onError(referenceId, subtitleInfo, "Dialogs read from file is null or empty!")
}
return return
} }
withContext(Dispatchers.Default) {
listener.onStarted(referenceId, subtitleInfo) listener.onStarted(referenceId, subtitleInfo)
}
val syncedDialogs = Syncro().sync(dialogs) val syncedDialogs = Syncro().sync(dialogs)
@ -32,8 +39,10 @@ class ConvertRunner(val referenceId: String, val listener: IConvertListener) {
language = subtitleInfo.language, language = subtitleInfo.language,
outFile = it.absolutePath outFile = it.absolutePath
) )
withContext(Dispatchers.Default) {
listener.onEnded(referenceId, subtitleInfo, work = item) listener.onEnded(referenceId, subtitleInfo, work = item)
} }
}
} }

View File

@ -34,11 +34,13 @@ class SubtitleConsumer: DefaultKafkaReader("convertHandlerSubtitle"), IConvertLi
val workResult = data.value().dataAs(ExtractWork::class.java) val workResult = data.value().dataAs(ExtractWork::class.java)
if (workResult?.produceConvertEvent == true) { if (workResult?.produceConvertEvent == true) {
logger.info { "Using ${data.value().referenceId} ${workResult.outFile} as it is a convert candidate" }
val convertWork = SubtitleInfo( val convertWork = SubtitleInfo(
inputFile = File(workResult.outFile), inputFile = File(workResult.outFile),
collection = workResult.collection, collection = workResult.collection,
language = workResult.language, language = workResult.language,
) )
produceMessage(KafkaEvents.EVENT_CONVERTER_STARTED_SUBTITLE_FILE, Message(referenceId = referenceId, Status(statusType = StatusType.PENDING)), convertWork)
Coroutines.io().launch { Coroutines.io().launch {
ConvertRunner(referenceId, this@SubtitleConsumer).readAndConvert(convertWork) ConvertRunner(referenceId, this@SubtitleConsumer).readAndConvert(convertWork)
} }

View File

@ -10,8 +10,10 @@ import no.iktdev.streamit.library.kafka.dto.Message
import no.iktdev.streamit.library.kafka.listener.SimpleMessageListener import no.iktdev.streamit.library.kafka.listener.SimpleMessageListener
import no.iktdev.streamit.library.kafka.listener.deserializer.IMessageDataDeserialization import no.iktdev.streamit.library.kafka.listener.deserializer.IMessageDataDeserialization
import org.apache.kafka.clients.consumer.ConsumerRecord import org.apache.kafka.clients.consumer.ConsumerRecord
import org.springframework.stereotype.Service
import java.io.File import java.io.File
@Service
class ConvertedSubtitleConsumer : DefaultKafkaReader("collectorConsumerConvertedSubtitle") { class ConvertedSubtitleConsumer : DefaultKafkaReader("collectorConsumerConvertedSubtitle") {
private val listener = object: SimpleMessageListener( private val listener = object: SimpleMessageListener(