diff --git a/.gitignore b/.gitignore index 72d6d57..a674a70 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,11 @@ *.db videos/ +# Локальные артефакты запуска +venv/ +bin/ +certs/ + # Логи (могут содержать токены SDK) *.log diff --git a/app.py b/app.py index 4373d79..7cbfb5c 100644 --- a/app.py +++ b/app.py @@ -99,6 +99,11 @@ VIDEO_MIME = { app = Flask(__name__) app.config["MAX_CONTENT_LENGTH"] = 100 * 1024 * 1024 # 100 МБ +# Базовый URL для share-ссылок и OG-тегов. +# По умолчанию — прод-домен; для локального запуска задайте BASE_URL, +# например https://192.168.31.248:18018 +BASE_URL = os.environ.get("BASE_URL", "https://med.my-dpr.ru").rstrip("/") + # CORS для интеграции с WordPress (кросс-доменные запросы с сайта на API). # Список разрешённых origin через запятую, по умолчанию "*" (любой). CORS_ORIGINS = [o.strip() for o in os.environ.get("CORS_ORIGINS", "*").split(",") if o.strip()] @@ -381,10 +386,10 @@ def shared_result(share_id): """Публичная страница результата по ссылке (с OG-тегами для соцсетей).""" result = storage.get_result(share_id) if result is None: - return render_template("result.html", result=None, error="Результат не найден", video_exists=False), 404 + return render_template("result.html", result=None, error="Результат не найден", video_exists=False, base_url=BASE_URL), 404 video_exists = bool(glob.glob(os.path.join(VIDEO_DIR, f"{share_id}.*"))) - return render_template("result.html", result=result, error=None, video_exists=video_exists) + return render_template("result.html", result=result, error=None, video_exists=video_exists, base_url=BASE_URL) @app.route("/download//pdf") @@ -509,7 +514,7 @@ def analyze(): # 6. Сохранение результата logger.info(f"[{job_id}] Сохранение результата") share_id = storage.save_result(interpretation, result) - share_url = f"https://med.my-dpr.ru/r/{share_id}" + share_url = f"{BASE_URL}/r/{share_id}" logger.info(f"[{job_id}] Результат сохранён: {share_url}") # Переименовываем видео под share_id (чтобы ссылка была стабильной) @@ -551,4 +556,14 @@ if __name__ == "__main__": print("🩺 Диагностика по видео — ФПГ") print(f"Откройте в браузере: http://localhost:5000") print("=" * 60) - app.run(host="0.0.0.0", port=18018, debug=False) + + # HTTPS (для доступа к камере из локальной сети нужен безопасный контекст). + # Задайте CERT_FILE и KEY_FILE (самоподписанный сертификат) — сервер поднимется по HTTPS. + cert_file = os.environ.get("CERT_FILE") + key_file = os.environ.get("KEY_FILE") + ssl_context = None + if cert_file and key_file: + ssl_context = (cert_file, key_file) + print(f"HTTPS включён: {cert_file}") + + app.run(host="0.0.0.0", port=18018, debug=False, ssl_context=ssl_context) diff --git a/templates/result.html b/templates/result.html index 6153909..3f6ded8 100644 --- a/templates/result.html +++ b/templates/result.html @@ -15,8 +15,8 @@ - - + + @@ -26,7 +26,7 @@ - + @@ -314,7 +314,7 @@ {% endif %}
- +