Результаты доступны 30 минут, затем становятся недоступными (не удаляются)

This commit is contained in:
apuc committed 2026-09-21 15:08:09 +03:00
1 parent 6ea71e1864
commit d81d5a4672
2 files changed
+29 -1

No files matched your search

+16
View File
@@ -405,6 +405,8 @@ def shared_result(share_id):
result = storage.get_result(share_id)
if result is None:
return render_template("result.html", result=None, error="Результат не найден", video_exists=False, base_url=BASE_URL), 404
if storage.is_expired(result["created_at"]):
return render_template("result.html", result=None, error="Ссылка устарела. Результат доступен в течение 30 минут после сканирования.", video_exists=False, base_url=BASE_URL), 410
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, base_url=BASE_URL)
@@ -413,6 +415,11 @@ def shared_result(share_id):
@app.route("/download/<share_id>/pdf")
def download_pdf(share_id):
"""Скачать результат в PDF."""
result = storage.get_result(share_id)
if result is None:
return "Результат не найден", 404
if storage.is_expired(result["created_at"]):
return "Ссылка устарела. Результат доступен в течение 30 минут.", 410
try:
data = export.generate_pdf(share_id)
except ValueError:
@@ -431,6 +438,11 @@ def download_pdf(share_id):
@app.route("/download/<share_id>/docx")
def download_docx(share_id):
"""Скачать результат в DOCX."""
result = storage.get_result(share_id)
if result is None:
return "Результат не найден", 404
if storage.is_expired(result["created_at"]):
return "Ссылка устарела. Результат доступен в течение 30 минут.", 410
try:
data = export.generate_docx(share_id)
except ValueError:
@@ -449,6 +461,10 @@ def download_docx(share_id):
@app.route("/download/<video_id>/video")
def download_video(video_id):
"""Скачать видео, записанное при сканировании (то, что было в кружке)."""
# Если video_id соответствует результату в БД — проверяем срок действия.
result = storage.get_result(video_id)
if result is not None and storage.is_expired(result["created_at"]):
return "Ссылка устарела. Результат доступен в течение 30 минут.", 410
matches = glob.glob(os.path.join(VIDEO_DIR, f"{video_id}.*"))
if not matches:
return "Видео не найдено", 404