add download option on clips and snapshots

This commit is contained in:
Jason Hunter
2021-07-11 20:42:23 -04:00
committed by Blake Blackshear
parent 1181620f33
commit 2fbfbf614b
2 changed files with 26 additions and 6 deletions

View File

@@ -187,6 +187,7 @@ def event_thumbnail(id):
@bp.route("/events/<id>/snapshot.jpg")
def event_snapshot(id):
download = request.args.get("download", type=bool)
jpg_bytes = None
try:
event = Event.get(Event.id == id)
@@ -222,11 +223,17 @@ def event_snapshot(id):
response = make_response(jpg_bytes)
response.headers["Content-Type"] = "image/jpg"
if download:
response.headers[
"Content-Disposition"
] = f"attachment; filename=snapshot-{id}.jpg"
return response
@bp.route("/events/<id>/clip.mp4")
def event_clip(id):
download = request.args.get("download", type=bool)
event: Event = Event.get(Event.id == id)
if event is None:
@@ -246,7 +253,7 @@ def event_clip(id):
return send_file(
clip_path,
mimetype="video/mp4",
as_attachment=True,
as_attachment=download,
attachment_filename=f"{event.camera}_{start_ts}-{end_ts}.mp4",
)
@@ -548,6 +555,8 @@ def recordings(camera_name):
@bp.route("/<camera>/start/<int:start_ts>/end/<int:end_ts>/clip.mp4")
@bp.route("/<camera>/start/<float:start_ts>/end/<float:end_ts>/clip.mp4")
def recording_clip(camera, start_ts, end_ts):
download = request.args.get("download", type=bool)
recordings = (
Recordings.select()
.where(
@@ -615,9 +624,10 @@ def recording_clip(camera, start_ts, end_ts):
response = make_response(mp4_bytes)
response.mimetype = "video/mp4"
response.headers[
"Content-Disposition"
] = f"attachment; filename={camera}_{start_ts}-{end_ts}.mp4"
if download:
response.headers[
"Content-Disposition"
] = f"attachment; filename={camera}_{start_ts}-{end_ts}.mp4"
return response