Improve error checking and handling for recordings export (#7647)

* Improve error checking and handling for recordings export

* Cleanup

* Remove order by
This commit is contained in:
Nicolas Mowen
2023-09-02 04:42:33 -06:00
committed by GitHub
parent 36434bb26d
commit db6ee41f3c
2 changed files with 34 additions and 4 deletions

View File

@@ -1617,7 +1617,31 @@ def vod_event(id):
methods=["POST"],
)
def export_recording(camera_name: str, start_time, end_time):
playback_factor = request.get_json(silent=True).get("playback", "realtime")
if not camera_name or not current_app.frigate_config.cameras.get(camera_name):
return make_response(
jsonify(
{"success": False, "message": f"{camera_name} is not a valid camera."}
),
404,
)
json: dict[str, any] = request.get_json(silent=True) or {}
playback_factor = json.get("playback", "realtime")
recordings_count = (
Recordings.select()
.where(
Recordings.start_time.between(start_time, end_time)
| Recordings.end_time.between(start_time, end_time)
| ((start_time > Recordings.start_time) & (end_time < Recordings.end_time))
)
.where(Recordings.camera == camera_name)
.count()
)
if recordings_count <= 0:
return "No recordings found for time range", 400
exporter = RecordingExporter(
current_app.frigate_config,
camera_name,