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 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>) {
val event = incomingEvent.consume()
@ -35,9 +43,22 @@ class CoverFromMetadataTaskListener: CoordinatorEventListener() {
}
val baseInfo = events.find { it.eventType == Events.EventMediaReadBaseInfoPerformed }?.az<BaseInfoEvent>()?.data ?: return
val metadata = events.findLast { it.eventType == Events.EventMediaMetadataSearchPerformed }?.az<MediaMetadataReceivedEvent>()?.data ?: return
val mediaOutInfo = events.find { it.eventType == Events.EventMediaReadOutNameAndType }?.az<MediaOutInformationConstructedEvent>()?.data ?: return
val baseInfo = events.find { it.eventType == Events.EventMediaReadBaseInfoPerformed }?.az<BaseInfoEvent>()?.data
if (baseInfo == null) {
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()
var coverTitle = metadata.title ?: videoInfo?.title ?: baseInfo.title

View File

@ -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()