From 964ee7e07c871dabcce289a0c1ad49323d784e43 Mon Sep 17 00:00:00 2001 From: jo Date: Thu, 23 Mar 2023 02:16:10 +0100 Subject: [PATCH] refactor(playout): add ended check to event class --- playout/libretime_playout/player/events.py | 3 +++ playout/libretime_playout/player/liquidsoap.py | 11 ++--------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/playout/libretime_playout/player/events.py b/playout/libretime_playout/player/events.py index 3d08cf238..a057772ab 100644 --- a/playout/libretime_playout/player/events.py +++ b/playout/libretime_playout/player/events.py @@ -60,6 +60,9 @@ class BaseEvent(BaseModel): def end_key(self) -> str: return datetime_to_event_key(self.end) + def ended(self) -> bool: + return datetime.utcnow() > self.end + class FileEvent(BaseEvent): type: Literal[EventKind.FILE] diff --git a/playout/libretime_playout/player/liquidsoap.py b/playout/libretime_playout/player/liquidsoap.py index c614f4f4e..5e3902a7a 100644 --- a/playout/libretime_playout/player/liquidsoap.py +++ b/playout/libretime_playout/player/liquidsoap.py @@ -195,15 +195,10 @@ class PypoLiquidsoap: elif event.event_type == "switch_off": self.telnet_liquidsoap.switch_source("live_dj", "off") - def is_media_item_finished(self, media_item: Optional[AnyEvent]) -> bool: - if media_item is None: - return True - return datetime.utcnow() > media_item.end - def find_available_queue(self) -> int: available_queue = None for queue_id, item in self.liq_queue_tracker.items(): - if item is None or self.is_media_item_finished(item): + if item is None or item.ended(): # queue "i" is available. Push to this queue available_queue = queue_id @@ -252,9 +247,7 @@ class PypoLiquidsoap: row_id_map: Dict[int, FileEvent] = {} liq_queue_ids: Set[int] = set() for queue_item in self.liq_queue_tracker.values(): - if queue_item is not None and not self.is_media_item_finished( - queue_item - ): + if queue_item is not None and not queue_item.ended(): liq_queue_ids.add(queue_item.row_id) row_id_map[queue_item.row_id] = queue_item