From b8056a9f7a5714b886cb45e8e860c82d4e98e856 Mon Sep 17 00:00:00 2001 From: jo Date: Fri, 1 Jul 2022 12:40:24 +0200 Subject: [PATCH] chore(playout): use EventKind enum --- playout/libretime_playout/events.py | 10 ++++++++++ playout/libretime_playout/eventtypes.py | 6 ------ playout/libretime_playout/pypoliquidsoap.py | 22 ++++++++++----------- playout/libretime_playout/schedule.py | 12 ++++++----- 4 files changed, 27 insertions(+), 23 deletions(-) create mode 100644 playout/libretime_playout/events.py delete mode 100644 playout/libretime_playout/eventtypes.py diff --git a/playout/libretime_playout/events.py b/playout/libretime_playout/events.py new file mode 100644 index 000000000..9ce8d42d2 --- /dev/null +++ b/playout/libretime_playout/events.py @@ -0,0 +1,10 @@ +from enum import Enum + + +class EventKind(str, Enum): + FILE = "file" + EVENT = "event" + STREAM_BUFFER_START = "stream_buffer_start" + STREAM_OUTPUT_START = "stream_output_start" + STREAM_BUFFER_END = "stream_buffer_end" + STREAM_OUTPUT_END = "stream_output_end" diff --git a/playout/libretime_playout/eventtypes.py b/playout/libretime_playout/eventtypes.py deleted file mode 100644 index 5f9c871db..000000000 --- a/playout/libretime_playout/eventtypes.py +++ /dev/null @@ -1,6 +0,0 @@ -FILE = "file" -EVENT = "event" -STREAM_BUFFER_START = "stream_buffer_start" -STREAM_OUTPUT_START = "stream_output_start" -STREAM_BUFFER_END = "stream_buffer_end" -STREAM_OUTPUT_END = "stream_output_end" diff --git a/playout/libretime_playout/pypoliquidsoap.py b/playout/libretime_playout/pypoliquidsoap.py index c2282b9d2..f43a569d3 100644 --- a/playout/libretime_playout/pypoliquidsoap.py +++ b/playout/libretime_playout/pypoliquidsoap.py @@ -3,7 +3,7 @@ from datetime import datetime, timedelta from loguru import logger -from . import eventtypes +from .events import EventKind from .telnetliquidsoap import TelnetLiquidsoap @@ -25,13 +25,13 @@ class PypoLiquidsoap: return self.telnet_liquidsoap def play(self, media_item): - if media_item["type"] == eventtypes.FILE: + if media_item["type"] == EventKind.FILE: self.handle_file_type(media_item) - elif media_item["type"] == eventtypes.EVENT: + elif media_item["type"] == EventKind.EVENT: self.handle_event_type(media_item) - elif media_item["type"] == eventtypes.STREAM_BUFFER_START: + elif media_item["type"] == EventKind.STREAM_BUFFER_START: self.telnet_liquidsoap.start_web_stream_buffer(media_item) - elif media_item["type"] == eventtypes.STREAM_OUTPUT_START: + elif media_item["type"] == EventKind.STREAM_OUTPUT_START: if ( media_item["row_id"] != self.telnet_liquidsoap.current_prebuffering_stream_id @@ -40,9 +40,9 @@ class PypoLiquidsoap: # so that the prebuffering stage could take effect. Let's do the prebuffering now. self.telnet_liquidsoap.start_web_stream_buffer(media_item) self.telnet_liquidsoap.start_web_stream(media_item) - elif media_item["type"] == eventtypes.STREAM_BUFFER_END: + elif media_item["type"] == EventKind.STREAM_BUFFER_END: self.telnet_liquidsoap.stop_web_stream_buffer() - elif media_item["type"] == eventtypes.STREAM_OUTPUT_END: + elif media_item["type"] == EventKind.STREAM_OUTPUT_END: self.telnet_liquidsoap.stop_web_stream_output() else: raise UnknownMediaItemType(str(media_item)) @@ -123,13 +123,11 @@ class PypoLiquidsoap: try: scheduled_now_files = [ - x for x in scheduled_now if x["type"] == eventtypes.FILE + x for x in scheduled_now if x["type"] == EventKind.FILE ] scheduled_now_webstream = [ - x - for x in scheduled_now - if x["type"] in (eventtypes.STREAM_OUTPUT_START) + x for x in scheduled_now if x["type"] in (EventKind.STREAM_OUTPUT_START) ] schedule_ids = {x["row_id"] for x in scheduled_now_files} @@ -202,7 +200,7 @@ class PypoLiquidsoap: self.liq_queue_tracker[queue] = None def is_file(self, media_item): - return media_item["type"] == eventtypes.FILE + return media_item["type"] == EventKind.FILE def clear_queue_tracker(self): for i in self.liq_queue_tracker.keys(): diff --git a/playout/libretime_playout/schedule.py b/playout/libretime_playout/schedule.py index 235357e23..83670e8b9 100644 --- a/playout/libretime_playout/schedule.py +++ b/playout/libretime_playout/schedule.py @@ -9,6 +9,8 @@ from libretime_shared.datetime import ( time_in_seconds, ) +from .events import EventKind + EVENT_KEY_FORMAT = "%Y-%m-%d-%H-%M-%S" @@ -64,7 +66,7 @@ def generate_file_events( schedule_end_event_key = datetime_to_event_key(schedule["ends"]) events[schedule_start_event_key] = { - "type": "file", + "type": EventKind.FILE, "independent_event": False, "row_id": schedule["id"], "start": schedule_start_event_key, @@ -104,7 +106,7 @@ def generate_webstream_events( schedule_end_event_key = datetime_to_event_key(schedule["ends"]) events[schedule_start_event_key] = { - "type": "stream_buffer_start", + "type": EventKind.STREAM_BUFFER_START, "independent_event": True, "row_id": schedule["id"], "start": datetime_to_event_key(schedule["starts"] - timedelta(seconds=5)), @@ -114,7 +116,7 @@ def generate_webstream_events( } events[f"{schedule_start_event_key}_0"] = { - "type": "stream_output_start", + "type": EventKind.STREAM_OUTPUT_START, "independent_event": True, "row_id": schedule["id"], "start": schedule_start_event_key, @@ -127,7 +129,7 @@ def generate_webstream_events( # NOTE: stream_*_end were previously triggerered 1 second before the schedule end. events[schedule_end_event_key] = { - "type": "stream_buffer_end", + "type": EventKind.STREAM_BUFFER_END, "independent_event": True, "row_id": schedule["id"], "start": schedule_end_event_key, @@ -137,7 +139,7 @@ def generate_webstream_events( } events[f"{schedule_end_event_key}_0"] = { - "type": "stream_output_end", + "type": EventKind.STREAM_OUTPUT_END, "independent_event": True, "row_id": schedule["id"], "start": schedule_end_event_key,