chore(playout): use EventKind enum

This commit is contained in:
jo 2022-07-01 12:40:24 +02:00 committed by Kyle Robbertze
parent 97b723d0a5
commit b8056a9f7a
4 changed files with 27 additions and 23 deletions

View File

@ -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"

View File

@ -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"

View File

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

View File

@ -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,