Результаты доступны 30 минут, затем становятся недоступными (не удаляются)
This commit is contained in:
1 parent
6ea71e1864
commit
d81d5a4672
2 files changed
+29
-1
No files matched your search
@@ -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
|
||||
|
||||
Reference in new issue
Block a user