refactor(playout): unwrap schedule.media dict

This commit is contained in:
jo 2023-02-19 18:29:05 +01:00 committed by Jonas L
parent 0d4e2823e2
commit 00648b8f94
3 changed files with 224 additions and 225 deletions

View File

@ -18,6 +18,7 @@ from ..config import CACHE_DIR, POLL_INTERVAL, Config
from ..liquidsoap.client import LiquidsoapClient
from ..liquidsoap.models import Info, StreamPreferences, StreamState
from ..timeout import ls_timeout
from .events import Events
from .liquidsoap import PypoLiquidsoap
from .schedule import get_schedule
@ -56,7 +57,7 @@ class PypoFetch(Thread):
self.cache_dir = CACHE_DIR
logger.debug("Cache dir %s", self.cache_dir)
self.schedule_data = []
self.schedule_data: Events = {}
logger.info("PypoFetch: init complete")
# Handle a message from RabbitMQ, put it into our yucky global var.
@ -75,7 +76,7 @@ class PypoFetch(Thread):
logger.info("Handling command: %s", command)
if command == "update_schedule":
self.schedule_data = m["schedule"]
self.schedule_data = m["schedule"]["media"]
self.process_schedule(self.schedule_data)
elif command == "reset_liquidsoap_bootstrap":
self.set_bootstrap_variables()
@ -196,10 +197,10 @@ class PypoFetch(Thread):
# to the cache dir (Folder-structure: cache/YYYY-MM-DD-hh-mm-ss)
# - runs the cleanup routine, to get rid of unused cached files
def process_schedule(self, schedule_data):
def process_schedule(self, events: Events):
self.last_update_schedule_timestamp = time.time()
logger.debug(schedule_data)
media = schedule_data["media"]
logger.debug(events)
media = events
media_filtered = {}
# Download all the media and put playlists in liquidsoap "annotate" format

View File

@ -32,7 +32,7 @@ def insert_event(events: Events, event_key: str, event: AnyEvent):
events[key] = event
def get_schedule(api_client: ApiClient) -> Dict[Literal["media"], Events]:
def get_schedule(api_client: ApiClient) -> Events:
stream_preferences = StreamPreferences(**api_client.get_stream_preferences().json())
current_time = datetime.utcnow()
@ -75,7 +75,7 @@ def get_schedule(api_client: ApiClient) -> Dict[Literal["media"], Events]:
webstream = api_client.get_webstream(item["stream"]).json()
generate_webstream_events(events, item, webstream, show)
return {"media": dict(sorted(events.items()))}
return dict(sorted(events.items()))
def generate_live_events(

View File

@ -412,7 +412,6 @@ def test_get_schedule(schedule, requests_mock, api_client: ApiClient):
requests_mock.get(f"{base_url}/api/v2/webstreams/1", json=WEBSTREAM_1)
assert get_schedule(api_client) == {
"media": {
"2022-09-05-11-00-00": {
"type": EventKind.FILE,
"row_id": 1,
@ -639,4 +638,3 @@ def test_get_schedule(schedule, requests_mock, api_client: ApiClient):
"filesize": 10000,
},
}
}