Deploy drhider / validate (push) Canceled after 0s
- Update upload/ module to v0.2.2 with modular Layer 1 (FilePicker) and Layer 2 (Streaming transit upload) - Replace legacy manual file table in site/templates/index.html with FilePicker.initFilePicker - Wire uploadViaVM with per-file status updates and abort signal support - Add dist bundles to dist/ and site/static/dist/ with routes in site/routes/main_bp.py - Add test_hardening.py and test_safe_name.py from upload-platform - Bump version to 0.0.78 in site/app.py - Document integration plan and report in History/upload-integration/
49 lines
2.0 KiB
Python
49 lines
2.0 KiB
Python
"""
|
|
Blueprint: главная страница (GET /).
|
|
|
|
Отдаёт HTML-интерфейс DrHider.
|
|
"""
|
|
|
|
import os
|
|
|
|
from flask import Blueprint, render_template, current_app, send_from_directory
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════
|
|
# Blueprint: главная страница
|
|
# ═══════════════════════════════════════════════════════════════════════════
|
|
|
|
# Корень модуля upload/frontend — для раздачи ES-модулей браузеру
|
|
_ROOT_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
_UPLOAD_FRONTEND_DIR = os.path.join(_ROOT_DIR, "upload", "frontend")
|
|
_DIST_DIR = os.path.join(_ROOT_DIR, "dist")
|
|
|
|
main_bp = Blueprint("main", __name__)
|
|
|
|
|
|
@main_bp.route("/")
|
|
def index():
|
|
"""Главная страница — веб-интерфейс DrHider.
|
|
|
|
Передаёт в шаблон текущую версию приложения.
|
|
"""
|
|
version = current_app.config.get("VERSION", "0.0.0")
|
|
return render_template("index.html", version=version)
|
|
|
|
|
|
@main_bp.route("/upload/<path:filename>")
|
|
def upload_frontend(filename):
|
|
"""Раздаёт ES-модули переиспользуемого слоя загрузки (upload/frontend)."""
|
|
return send_from_directory(_UPLOAD_FRONTEND_DIR, filename)
|
|
|
|
|
|
@main_bp.route("/file-picker/<path:filename>")
|
|
def file_picker_dist(filename):
|
|
"""Отдаёт собранный бандл из каталога dist."""
|
|
return send_from_directory(_DIST_DIR, filename)
|
|
|
|
|
|
@main_bp.route("/dist/<path:filename>")
|
|
def dist_files(filename):
|
|
"""Отдаёт файлы из каталога dist."""
|
|
return send_from_directory(_DIST_DIR, filename)
|