diff --git a/frigate/api/export.py b/frigate/api/export.py index c47073ef1..71c6ebe6c 100644 --- a/frigate/api/export.py +++ b/frigate/api/export.py @@ -76,7 +76,7 @@ def export_recording(camera_name: str, start_time, end_time): exporter = RecordingExporter( current_app.frigate_config, camera_name, - secure_filename(name.replace(" ", "_")) if name else None, + secure_filename(name) if name else None, int(start_time), int(end_time), ( @@ -97,7 +97,7 @@ def export_recording(camera_name: str, start_time, end_time): ) -@ExportBp.route("/export//", methods=["POST"]) +@ExportBp.route("/export//", methods=["PATCH"]) def export_rename(id, new_name: str): try: export: Export = Export.get(Export.id == id) @@ -142,7 +142,7 @@ def export_delete(id: str): Path(export.video_path).unlink(missing_ok=True) Path(export.thumb_path).unlink(missing_ok=True) - export.delete() + export.delete_instance() return make_response( jsonify( { diff --git a/frigate/record/export.py b/frigate/record/export.py index 5b562bd60..ffac0c21e 100644 --- a/frigate/record/export.py +++ b/frigate/record/export.py @@ -159,7 +159,7 @@ class RecordingExporter(threading.Thread): export_id = f"{self.camera}_{''.join(random.choices(string.ascii_lowercase + string.digits, k=6))}" export_name = ( self.user_provided_name - or f"{self.camera.replace("_", " ")} {self.get_datetime_from_timestamp(self.start_time)} {self.get_datetime_from_timestamp(self.end_time)}" + or f"{self.camera.replace('_', ' ')} {self.get_datetime_from_timestamp(self.start_time)} {self.get_datetime_from_timestamp(self.end_time)}" ) video_path = f"{EXPORT_DIR}/{export_id}.mp4" diff --git a/web/src/components/card/ExportCard.tsx b/web/src/components/card/ExportCard.tsx index 5c40841d9..01415043b 100644 --- a/web/src/components/card/ExportCard.tsx +++ b/web/src/components/card/ExportCard.tsx @@ -40,7 +40,7 @@ export default function ExportCard({ editName != undefined ? ["Enter"] : [], (_, down, repeat) => { if (down && !repeat && editName && editName.update.length > 0) { - onRename(editName.original, editName.update); + onRename(exportedRecording.id, editName.update); setEditName(undefined); } }, @@ -78,10 +78,7 @@ export default function ExportCard({ variant="select" disabled={(editName?.update?.length ?? 0) == 0} onClick={() => { - onRename( - editName.original, - editName.update.replaceAll(" ", "_"), - ); + onRename(exportedRecording.id, editName.update); setEditName(undefined); }} > @@ -118,7 +115,7 @@ export default function ExportCard({ - setEditName({ original: exportedRecording.id, update: "" }) + setEditName({ original: exportedRecording.name, update: "" }) } > diff --git a/web/src/pages/Exports.tsx b/web/src/pages/Exports.tsx index 8309d1804..64df6c6a0 100644 --- a/web/src/pages/Exports.tsx +++ b/web/src/pages/Exports.tsx @@ -34,9 +34,7 @@ function Exports() { } return exports.filter((exp) => - exp.name - .toLowerCase() - .includes(search.toLowerCase().replaceAll(" ", "_")), + exp.name.toLowerCase().includes(search.toLowerCase()), ); }, [exports, search]); @@ -90,7 +88,11 @@ function Exports() { Cancel - @@ -144,7 +146,7 @@ function Exports() { exportedRecording={item} onSelect={setSelected} onRename={onHandleRename} - onDelete={(file) => setDeleteClip(file)} + onDelete={(id) => setDeleteClip(id)} /> ))}