""" 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/") def upload_frontend(filename): """Раздаёт ES-модули переиспользуемого слоя загрузки (upload/frontend).""" return send_from_directory(_UPLOAD_FRONTEND_DIR, filename) @main_bp.route("/file-picker/") def file_picker_dist(filename): """Отдаёт собранный бандл из каталога dist.""" return send_from_directory(_DIST_DIR, filename) @main_bp.route("/dist/") def dist_files(filename): """Отдаёт файлы из каталога dist.""" return send_from_directory(_DIST_DIR, filename)