From 2211d0756256a6d878f99186deb23d235ff7e502 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: Wed, 22 Apr 2026 11:28:24 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=20=D0=B0=D0=B2=D1=82=D0=BE=D1=81=D0=BA=D0=B0?= =?UTF-8?q?=D1=87=D0=B8=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B5=D0=BA=D1=82=D0=B0=20vMix=20=D0=BD=D0=B0=20=D0=BA=D0=BD?= =?UTF-8?q?=D0=BE=D0=BF=D0=BA=D1=83=20=D0=B2=D0=BE=20=D0=B2=D0=BA=D0=BB?= =?UTF-8?q?=D0=B0=D0=B4=D0=BA=D0=B5=20=D0=B8=D0=B3=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.py | 21 ++++- templates/download_vmix.html | 142 +++++++++++++++++++++++++++++++++ templates/match_workspace.html | 29 +++++++ templates/matches.html | 64 --------------- 4 files changed, 190 insertions(+), 66 deletions(-) create mode 100644 templates/download_vmix.html diff --git a/app.py b/app.py index 30c038f..83a37b5 100644 --- a/app.py +++ b/app.py @@ -549,9 +549,26 @@ def select_match( "success": True, "session_token": session_token, "session_url": f"/admin/session/{session_token}", - "download_url": f"/admin/session/{session_token}/download-vmix", }) - + + +@app.get("/admin/session/{session_token}/download-vmix-page", response_class=HTMLResponse) +def download_vmix_project_page(request: Request, session_token: str): + session_row = get_match_session_by_token(session_token) + if not session_row: + return RedirectResponse(url="/admin/matches", status_code=303) + + return templates.TemplateResponse( + name="download_vmix.html", + request=request, + context={ + "session": session_row, + "session_token": session_token, + "download_url": f"/admin/session/{session_token}/download-vmix", + "back_url": f"/admin/session/{session_token}?tab=game", + }, + ) + @app.get("/admin/session/{session_token}/download-vmix") def download_vmix_project(session_token: str): diff --git a/templates/download_vmix.html b/templates/download_vmix.html new file mode 100644 index 0000000..924467d --- /dev/null +++ b/templates/download_vmix.html @@ -0,0 +1,142 @@ + + + + + + + + + Загрузка проекта vMix + + + +
+ +
+
Загрузка vMix
+
Подготовка проекта к скачиванию...
+
+ Назад к игре +
+
+
+ + + + diff --git a/templates/match_workspace.html b/templates/match_workspace.html index fb3aab3..7138dcf 100644 --- a/templates/match_workspace.html +++ b/templates/match_workspace.html @@ -46,6 +46,26 @@ outline-offset: 2px; border-radius: 6px; } + + .vmix-download-btn { + text-decoration: none; + } + + .vmix-icon { + width: 18px; + height: 18px; + display: inline-flex; + align-items: center; + justify-content: center; + border-radius: 4px; + background: linear-gradient(135deg, #ff5f6d 0%, #7b61ff 100%); + color: #ffffff; + font-size: 11px; + font-weight: 800; + font-family: Arial, sans-serif; + letter-spacing: 0.02em; + box-shadow: 0 0 10px rgba(123, 97, 255, 0.28); + } @@ -105,6 +125,15 @@ + + + +
{ - window.URL.revokeObjectURL(blobUrl); - window.location.href = data.session_url + "?tab=game"; - }, 1200); - - return; - } - setLoaderState( "is-success", "Загрузка завершена",