Files
folkugat-web/folkugat_web/fragments/live.py
2025-03-21 19:42:43 +01:00

59 lines
1.6 KiB
Python

from fastapi import Request
from fastapi.responses import HTMLResponse
from folkugat_web.model import sessions as model
from folkugat_web.services import playlists as playlists_service
from folkugat_web.services import sessions as service
from folkugat_web.templates import templates
def sessio_en_directe(request: Request):
session = service.get_live_session()
if not session:
return HTMLResponse()
if not session.id:
raise RuntimeError("Got a session without id!")
current_set = None
if playlist := playlists_service.get_playlist(session_id=session.id):
if playlist.sets:
current_set = playlists_service.add_temes_to_set(playlist.sets[-1])
return templates.TemplateResponse(
"fragments/marquee.html",
{
"request": request,
"session": session,
"current_set": current_set,
}
)
def start_live_session(request: Request, session_id: int):
service.set_live_session(session_id=session_id)
session = model.Session(id=session_id)
return templates.TemplateResponse(
"fragments/sessio/live/stop.html",
{
"request": request,
"session": session,
},
headers={
"HX-Trigger": "reload-marquee"
}
)
def stop_live_session(request: Request, session_id: int):
service.stop_live_sessions()
session = model.Session(id=session_id)
return templates.TemplateResponse(
"fragments/sessio/live/start.html",
{
"request": request,
"session": session,
},
headers={
"HX-Trigger": "reload-marquee"
}
)