Fix preview retrieval to handle missing previews gracefully

This commit is contained in:
Josh Hawkins 2026-03-08 14:31:51 -05:00
parent 4e71a835cb
commit 2e0b2f4f36

View File

@ -1531,25 +1531,25 @@ def preview_gif(
): ):
if datetime.fromtimestamp(start_ts) < datetime.now().replace(minute=0, second=0): if datetime.fromtimestamp(start_ts) < datetime.now().replace(minute=0, second=0):
# has preview mp4 # has preview mp4
preview: Previews = ( try:
Previews.select( preview: Previews = (
Previews.camera, Previews.select(
Previews.path, Previews.camera,
Previews.duration, Previews.path,
Previews.start_time, Previews.duration,
Previews.end_time, Previews.start_time,
Previews.end_time,
)
.where(
Previews.start_time.between(start_ts, end_ts)
| Previews.end_time.between(start_ts, end_ts)
| ((start_ts > Previews.start_time) & (end_ts < Previews.end_time))
)
.where(Previews.camera == camera_name)
.limit(1)
.get()
) )
.where( except DoesNotExist:
Previews.start_time.between(start_ts, end_ts)
| Previews.end_time.between(start_ts, end_ts)
| ((start_ts > Previews.start_time) & (end_ts < Previews.end_time))
)
.where(Previews.camera == camera_name)
.limit(1)
.get()
)
if not preview:
return JSONResponse( return JSONResponse(
content={"success": False, "message": "Preview not found"}, content={"success": False, "message": "Preview not found"},
status_code=404, status_code=404,