From 91ae79e3884e551ed5a427af16a1c7c391017a87 Mon Sep 17 00:00:00 2001 From: bskjon Date: Sun, 14 Jul 2024 01:57:38 +0200 Subject: [PATCH] v3 20 --- .../CoverFromMetadataTaskListener.kt | 29 ++++++++++++++++--- apps/pyMetadata/app.py | 2 ++ 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/listeners/CoverFromMetadataTaskListener.kt b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/listeners/CoverFromMetadataTaskListener.kt index 5c0d0ed5..606663f9 100644 --- a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/listeners/CoverFromMetadataTaskListener.kt +++ b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/listeners/CoverFromMetadataTaskListener.kt @@ -25,7 +25,15 @@ class CoverFromMetadataTaskListener: CoordinatorEventListener() { override var coordinator: Coordinator? = null override val produceEvent: Events = Events.EventMediaReadOutCover - override val listensForEvents: List = listOf(Events.EventMediaMetadataSearchPerformed) + override val listensForEvents: List = listOf( + Events.EventMediaMetadataSearchPerformed, + Events.EventMediaReadOutNameAndType + ) + + override fun isPrerequisitesFulfilled(incomingEvent: Event, events: List): Boolean { + return events.any { it.eventType == Events.EventMediaMetadataSearchPerformed } && + events.any { it.eventType == Events.EventMediaReadOutNameAndType } + } override fun onEventsReceived(incomingEvent: ConsumableEvent, events: List) { val event = incomingEvent.consume() @@ -35,9 +43,22 @@ class CoverFromMetadataTaskListener: CoordinatorEventListener() { } - val baseInfo = events.find { it.eventType == Events.EventMediaReadBaseInfoPerformed }?.az()?.data ?: return - val metadata = events.findLast { it.eventType == Events.EventMediaMetadataSearchPerformed }?.az()?.data ?: return - val mediaOutInfo = events.find { it.eventType == Events.EventMediaReadOutNameAndType }?.az()?.data ?: return + val baseInfo = events.find { it.eventType == Events.EventMediaReadBaseInfoPerformed }?.az()?.data + if (baseInfo == null) { + log.info { "No base info" } + return + } + + val metadata = events.findLast { it.eventType == Events.EventMediaMetadataSearchPerformed }?.az()?.data + if (metadata == null) { + log.info { "No metadata.." } + return + } + val mediaOutInfo = events.find { it.eventType == Events.EventMediaReadOutNameAndType }?.az()?.data + if (mediaOutInfo == null) { + log.info { "No Media out info" } + return + } val videoInfo = mediaOutInfo.toValueObject() var coverTitle = metadata.title ?: videoInfo?.title ?: baseInfo.title diff --git a/apps/pyMetadata/app.py b/apps/pyMetadata/app.py index b52ec719..7c0f256f 100644 --- a/apps/pyMetadata/app.py +++ b/apps/pyMetadata/app.py @@ -92,6 +92,8 @@ class EventsPullerThread(threading.Thread): connection.close() # Introduce a small sleep to reduce CPU usage time.sleep(1000) + if (self.shutdown.is_set()): + logger.info("Shutdown is set..") def stop(self): self.shutdown.set()