From 56ab87467d21174ae439758e0810d23a5ed8966f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D0=B8=D0=B9=20=D0=A7=D0=B5=D1=80=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=BA=D0=BE?= Date: Tue, 18 Nov 2025 19:01:01 +0300 Subject: [PATCH] test7 --- get_data.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/get_data.py b/get_data.py index 0e7e0ea..9e76659 100644 --- a/get_data.py +++ b/get_data.py @@ -3472,7 +3472,7 @@ def get_image(points, bib, count_point): draw.text((text_x, text_y), label, font=font, fill=(255, 255, 255, 255)) # --- сохраняем картинку в оперативную память --- - filename = f"shots_{bib}_{count_point}.png" + filename = f"{bib}_shots_{count_point}" buf = BytesIO() try: @@ -3487,7 +3487,7 @@ def get_image(points, bib, count_point): # формируем URL для vMix public_base = f"https://{MYHOST}.tvstart.ru" - public_url = f"{public_base.rstrip('/')}/shotmaps/{filename}" + public_url = f"{public_base.rstrip('/')}/image/{filename}" # logger.info( # f"[shotmap] generated in-memory shotmap for bib={bib}, ver={count_point} " @@ -3495,6 +3495,18 @@ def get_image(points, bib, count_point): # ) return public_url +@app.get("/image/{player_id_shots}") +async def get_shotmap_image(player_id_shots: str): + """ + Отдаёт картинку карты бросков из оперативной памяти. + player_id_shots должен совпадать с ключом в SHOTMAP_CACHE, например "23_shots". + """ + data = SHOTMAP_CACHE.get(player_id_shots) + if not data: + raise HTTPException(status_code=404, detail="Shotmap not found in memory") + + return Response(content=data, media_type="image/png") + if __name__ == "__main__": uvicorn.run(