from fastapi import HTTPException, Request from folkugat_web.model.pagines import Pages from folkugat_web.model.temes import ContentType, LinkType from folkugat_web.services import playlists as playlists_service from folkugat_web.services import sessions as sessions_service from folkugat_web.templates import templates async def pagina(request: Request, session_id: int, set_id: int, logged_in: bool): session = sessions_service.get_session(session_id=session_id) set_ = playlists_service.get_set(session_id=session_id, set_id=set_id) if not set_: raise HTTPException(status_code=404, detail="Set not found") set_ = playlists_service.add_temes_to_set(set_) set_ = await playlists_service.add_set_score_to_set(set_) return templates.TemplateResponse( "fragments/sessio/set/pagina.html", { "request": request, "logged_in": logged_in, "Pages": Pages, "session_id": session_id, "session": session, "set": set_, "date_names": sessions_service.get_date_names, "LinkType": LinkType, "ContentType": ContentType, } ) def live(request: Request, logged_in: bool): session = sessions_service.get_live_session() set_ = None if session and session.id: playlist = playlists_service.get_playlist(session_id=session.id) if playlist.sets: set_ = playlists_service.add_temes_to_set(playlist.sets[-1]) return templates.TemplateResponse( "fragments/sessio/set/pagina.html", { "request": request, "logged_in": logged_in, "Pages": Pages, "session": session, "set": set_, "date_names": sessions_service.get_date_names, "LinkType": LinkType, "ContentType": ContentType, } ) def live_set(request: Request, logged_in: bool): session = sessions_service.get_live_session() set_ = None if session and session.id: playlist = playlists_service.get_playlist(session_id=session.id) if playlist.sets: set_ = playlists_service.add_temes_to_set(playlist.sets[-1]) return templates.TemplateResponse( "fragments/sessio/set/set_page.html", { "request": request, "logged_in": logged_in, "Pages": Pages, "session": session, "set": set_, "date_names": sessions_service.get_date_names, "LinkType": LinkType, "ContentType": ContentType, } )