This commit is contained in:
bskjon 2024-07-14 01:57:38 +02:00
parent 8d64e88664
commit 91ae79e388
2 changed files with 27 additions and 4 deletions

View File

@ -25,7 +25,15 @@ class CoverFromMetadataTaskListener: CoordinatorEventListener() {
override var coordinator: Coordinator? = null override var coordinator: Coordinator? = null
override val produceEvent: Events = Events.EventMediaReadOutCover override val produceEvent: Events = Events.EventMediaReadOutCover
override val listensForEvents: List<Events> = listOf(Events.EventMediaMetadataSearchPerformed) override val listensForEvents: List<Events> = listOf(
Events.EventMediaMetadataSearchPerformed,
Events.EventMediaReadOutNameAndType
)
override fun isPrerequisitesFulfilled(incomingEvent: Event, events: List<Event>): Boolean {
return events.any { it.eventType == Events.EventMediaMetadataSearchPerformed } &&
events.any { it.eventType == Events.EventMediaReadOutNameAndType }
}
override fun onEventsReceived(incomingEvent: ConsumableEvent<Event>, events: List<Event>) { override fun onEventsReceived(incomingEvent: ConsumableEvent<Event>, events: List<Event>) {
val event = incomingEvent.consume() val event = incomingEvent.consume()
@ -35,9 +43,22 @@ class CoverFromMetadataTaskListener: CoordinatorEventListener() {
} }
val baseInfo = events.find { it.eventType == Events.EventMediaReadBaseInfoPerformed }?.az<BaseInfoEvent>()?.data ?: return val baseInfo = events.find { it.eventType == Events.EventMediaReadBaseInfoPerformed }?.az<BaseInfoEvent>()?.data
val metadata = events.findLast { it.eventType == Events.EventMediaMetadataSearchPerformed }?.az<MediaMetadataReceivedEvent>()?.data ?: return if (baseInfo == null) {
val mediaOutInfo = events.find { it.eventType == Events.EventMediaReadOutNameAndType }?.az<MediaOutInformationConstructedEvent>()?.data ?: return log.info { "No base info" }
return
}
val metadata = events.findLast { it.eventType == Events.EventMediaMetadataSearchPerformed }?.az<MediaMetadataReceivedEvent>()?.data
if (metadata == null) {
log.info { "No metadata.." }
return
}
val mediaOutInfo = events.find { it.eventType == Events.EventMediaReadOutNameAndType }?.az<MediaOutInformationConstructedEvent>()?.data
if (mediaOutInfo == null) {
log.info { "No Media out info" }
return
}
val videoInfo = mediaOutInfo.toValueObject() val videoInfo = mediaOutInfo.toValueObject()
var coverTitle = metadata.title ?: videoInfo?.title ?: baseInfo.title var coverTitle = metadata.title ?: videoInfo?.title ?: baseInfo.title

View File

@ -92,6 +92,8 @@ class EventsPullerThread(threading.Thread):
connection.close() connection.close()
# Introduce a small sleep to reduce CPU usage # Introduce a small sleep to reduce CPU usage
time.sleep(1000) time.sleep(1000)
if (self.shutdown.is_set()):
logger.info("Shutdown is set..")
def stop(self): def stop(self):
self.shutdown.set() self.shutdown.set()