fix(playout): use int for liquidsoap queues map

This commit is contained in:
jo 2023-03-01 19:20:44 +01:00 committed by Kyle Robbertze
parent 9f92ed95b4
commit 1bdfeb570d
3 changed files with 12 additions and 12 deletions

View File

@ -68,11 +68,11 @@ class LiquidsoapClient:
def queues_remove(self, *queues: int) -> None:
with self.conn:
for queue_id in queues:
self.conn.write(f"queues.{queue_id}_skip")
self.conn.write(f"queues.s{queue_id}_skip")
def queue_push(self, queue_id: int, entry: str, show_name: str) -> None:
with self.conn:
self.conn.write(f"{queue_id}.push {entry}")
self.conn.write(f"s{queue_id}.push {entry}")
self.conn.read() # Flush
self._set_var("show_name", self._quote(show_name))

View File

@ -20,11 +20,11 @@ logger = logging.getLogger(__name__)
class PypoLiquidsoap:
def __init__(self, liq_client: LiquidsoapClient):
self.liq_queue_tracker: Dict[str, Optional[FileEvent]] = {
"s0": None,
"s1": None,
"s2": None,
"s3": None,
self.liq_queue_tracker: Dict[int, Optional[FileEvent]] = {
0: None,
1: None,
2: None,
3: None,
}
self.liq_client = liq_client
@ -93,7 +93,7 @@ class PypoLiquidsoap:
return True
return datetime.utcnow() > event_key_to_datetime(media_item["end"])
def find_available_queue(self) -> str:
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):
@ -213,7 +213,7 @@ class PypoLiquidsoap:
except KeyError as exception:
logger.exception("Malformed event in schedule: %s", exception)
def stop(self, queue_id: str):
def stop(self, queue_id: int):
self.telnet_liquidsoap.queue_remove(queue_id)
self.liq_queue_tracker[queue_id] = None

View File

@ -45,7 +45,7 @@ class TelnetLiquidsoap:
def __init__(
self,
liq_client: LiquidsoapClient,
queues: List[str],
queues: List[int],
):
self.liq_client = liq_client
self.queues = queues
@ -59,14 +59,14 @@ class TelnetLiquidsoap:
logger.exception(exception)
@ls_timeout
def queue_remove(self, queue_id):
def queue_remove(self, queue_id: int):
try:
self.liq_client.queues_remove(queue_id)
except (ConnectionError, TimeoutError) as exception:
logger.exception(exception)
@ls_timeout
def queue_push(self, queue_id, media_item):
def queue_push(self, queue_id: int, media_item: FileEvent):
try:
annotation = create_liquidsoap_annotation(media_item)
self.liq_client.queue_push(queue_id, annotation, media_item["show_name"])