Set scores

This commit is contained in:
marc
2025-04-26 21:56:25 +02:00
parent d132e6fd60
commit e6b8b3e809
13 changed files with 174 additions and 61 deletions

View File

@@ -1,15 +1,9 @@
from typing import Annotated
from fastapi import Form, HTTPException, Request
from fastapi.responses import HTMLResponse
from fastapi import Form, Request
from folkugat_web.api import router
from folkugat_web.fragments import live, sessio
from folkugat_web.services import auth, files
from folkugat_web.services import playlists as playlists_service
from folkugat_web.services.lilypond import build as lilypond_build
from folkugat_web.services.lilypond import render as lilypond_render
from folkugat_web.services.lilypond import source as lilypond_source
from folkugat_web.services.temes import scores as scores_service
from folkugat_web.services import auth
from folkugat_web.services.temes import write as temes_service
from folkugat_web.templates import templates
@@ -205,25 +199,26 @@ def set_tema_new(
)
@router.get("/api/sessio/{session_id}/set/{set_id}/score")
async def render(
request: Request,
_: auth.RequireLogin,
session_id: int,
set_id: int,
):
set_entry = playlists_service.get_set(session_id=session_id, set_id=set_id)
if not set_entry:
raise HTTPException(status_code=404, detail="Could not find set!")
tune_set = lilypond_build.set_from_set(set_entry=set_entry)
set_source = lilypond_source.set_source(tune_set=tune_set)
pdf_result = await lilypond_render.render(
source=set_source,
output=lilypond_render.RenderOutput.PDF,
)
if output_filename := pdf_result.result:
score_render_url = files.get_db_file_path(output_filename)
# return temes.score_render(request=request, score_id=score_id, score_render_url=score_render_url)
return HTMLResponse(content=score_render_url)
else:
return HTMLResponse()
# @router.get("/api/sessio/{session_id}/set/{set_id}/score")
# async def render(
# request: Request,
# _: auth.RequireLogin,
# session_id: int,
# set_id: int,
# ):
# set_entry = playlists_service.get_set(session_id=session_id, set_id=set_id)
# if not set_entry:
# raise HTTPException(status_code=404, detail="Could not find set!")
# set_entry = playlists_service.add_temes_to_set(set_entry)
# tune_set = lilypond_build.set_from_set(set_entry=set_entry)
# set_source = lilypond_source.set_source(tune_set=tune_set)
# pdf_result = await lilypond_render.render(
# source=set_source,
# output=lilypond_render.RenderOutput.PDF,
# )
# if output_filename := pdf_result.result:
# score_render_url = files.get_db_file_path(output_filename)
# # return temes.score_render(request=request, score_id=score_id, score_render_url=score_render_url)
# return HTMLResponse(content=score_render_url)
# else:
# return HTMLResponse()

View File

@@ -24,10 +24,10 @@ def page(
@router.get("/api/content/sessio/{session_id}/set/{set_id}")
def contingut(
async def contingut(
request: Request,
logged_in: auth.LoggedIn,
session_id: int,
set_id: int,
):
return set_page.pagina(request, session_id, set_id, logged_in)
return await set_page.pagina(request, session_id, set_id, logged_in)