mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-19 01:17:06 +03:00
Fix delete image bug
This commit is contained in:
parent
8a70da4952
commit
b481e242fb
@ -110,6 +110,7 @@ def deregister_faces(request: Request, name: str, body: dict = None):
|
|||||||
|
|
||||||
json: dict[str, any] = body or {}
|
json: dict[str, any] = body or {}
|
||||||
list_of_ids = json.get("ids", [])
|
list_of_ids = json.get("ids", [])
|
||||||
|
delete_directory = json.get("delete_directory", False) # New flag for directory deletion
|
||||||
|
|
||||||
if not list_of_ids:
|
if not list_of_ids:
|
||||||
return JSONResponse(
|
return JSONResponse(
|
||||||
@ -125,18 +126,18 @@ def deregister_faces(request: Request, name: str, body: dict = None):
|
|||||||
content={"message": f"Face '{name}' not found", "success": False},
|
content={"message": f"Face '{name}' not found", "success": False},
|
||||||
)
|
)
|
||||||
|
|
||||||
context: EmbeddingsContext = request.app.embeddings
|
|
||||||
context.delete_face_ids(
|
|
||||||
name, map(lambda file: sanitize_filename(file), list_of_ids)
|
|
||||||
)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if os.path.exists(face_dir):
|
if delete_directory:
|
||||||
shutil.rmtree(face_dir)
|
shutil.rmtree(face_dir)
|
||||||
|
else:
|
||||||
|
context: EmbeddingsContext = request.app.embeddings
|
||||||
|
context.delete_face_ids(
|
||||||
|
name, map(lambda file: sanitize_filename(file), list_of_ids)
|
||||||
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Failed to remove directory {face_dir}: {str(e)}")
|
logger.error(f"Failed to delete face: {str(e)}")
|
||||||
return JSONResponse(
|
return JSONResponse(
|
||||||
content={"success": False, "message": f"Failed to remove directory: {str(e)}"},
|
content={"success": False, "message": f"Failed to delete face: {str(e)}"},
|
||||||
status_code=500,
|
status_code=500,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@ -169,6 +169,7 @@ export default function FaceLibrary() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
setRenameDialog(false);
|
setRenameDialog(false);
|
||||||
|
setPageToggle(renameData.newName);
|
||||||
setRenameData({ oldName: '', newName: '' });
|
setRenameData({ oldName: '', newName: '' });
|
||||||
await refreshFaces();
|
await refreshFaces();
|
||||||
toast.success("Successfully renamed face", { position: "top-center" });
|
toast.success("Successfully renamed face", { position: "top-center" });
|
||||||
@ -181,13 +182,14 @@ export default function FaceLibrary() {
|
|||||||
} finally {
|
} finally {
|
||||||
setIsRenaming(false);
|
setIsRenaming(false);
|
||||||
}
|
}
|
||||||
}, [renameData, refreshFaces]);
|
}, [renameData, refreshFaces, setPageToggle]);
|
||||||
|
|
||||||
const deleteFace = useCallback(async () => {
|
const deleteFace = useCallback(async () => {
|
||||||
try {
|
try {
|
||||||
const images = faceData[renameData.oldName] || [];
|
const images = faceData[renameData.oldName] || [];
|
||||||
await axios.post(`/faces/${renameData.oldName}/delete`, {
|
await axios.post(`/faces/${renameData.oldName}/delete`, {
|
||||||
ids: images.length ? images : ['dummy']
|
ids: images.length ? images : ['dummy'],
|
||||||
|
delete_directory: true
|
||||||
});
|
});
|
||||||
setRenameDialog(false);
|
setRenameDialog(false);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user