mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-05-05 04:57:42 +03:00
api endpoint
This commit is contained in:
parent
3d2bfa34c8
commit
856e3e88ef
@ -13,6 +13,15 @@ class EventsSubLabelBody(BaseModel):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class EventsLPRBody(BaseModel):
|
||||||
|
recognizedLicensePlate: str = Field(
|
||||||
|
title="Recognized License Plate", max_length=100
|
||||||
|
)
|
||||||
|
recognizedLicensePlateScore: Optional[float] = Field(
|
||||||
|
title="Score for recognized license plate", default=None, gt=0.0, le=1.0
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class EventsDescriptionBody(BaseModel):
|
class EventsDescriptionBody(BaseModel):
|
||||||
description: Union[str, None] = Field(title="The description of the event")
|
description: Union[str, None] = Field(title="The description of the event")
|
||||||
|
|
||||||
|
|||||||
@ -31,6 +31,7 @@ from frigate.api.defs.request.events_body import (
|
|||||||
EventsDeleteBody,
|
EventsDeleteBody,
|
||||||
EventsDescriptionBody,
|
EventsDescriptionBody,
|
||||||
EventsEndBody,
|
EventsEndBody,
|
||||||
|
EventsLPRBody,
|
||||||
EventsSubLabelBody,
|
EventsSubLabelBody,
|
||||||
SubmitPlusBody,
|
SubmitPlusBody,
|
||||||
)
|
)
|
||||||
@ -1099,6 +1100,60 @@ def set_sub_label(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@router.post(
|
||||||
|
"/events/{event_id}/recognized_license_plate",
|
||||||
|
response_model=GenericResponse,
|
||||||
|
dependencies=[Depends(require_role(["admin"]))],
|
||||||
|
)
|
||||||
|
def set_plate(
|
||||||
|
request: Request,
|
||||||
|
event_id: str,
|
||||||
|
body: EventsLPRBody,
|
||||||
|
):
|
||||||
|
try:
|
||||||
|
event: Event = Event.get(Event.id == event_id)
|
||||||
|
except DoesNotExist:
|
||||||
|
event = None
|
||||||
|
|
||||||
|
if request.app.detected_frames_processor:
|
||||||
|
tracked_obj: TrackedObject = None
|
||||||
|
|
||||||
|
for state in request.app.detected_frames_processor.camera_states.values():
|
||||||
|
tracked_obj = state.tracked_objects.get(event_id)
|
||||||
|
|
||||||
|
if tracked_obj is not None:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
tracked_obj = None
|
||||||
|
|
||||||
|
if not event and not tracked_obj:
|
||||||
|
return JSONResponse(
|
||||||
|
content=(
|
||||||
|
{"success": False, "message": "Event " + event_id + " not found."}
|
||||||
|
),
|
||||||
|
status_code=404,
|
||||||
|
)
|
||||||
|
|
||||||
|
new_plate = body.recognizedLicensePlate
|
||||||
|
new_score = body.recognizedLicensePlateScore
|
||||||
|
|
||||||
|
if new_plate == "":
|
||||||
|
new_plate = None
|
||||||
|
new_score = None
|
||||||
|
|
||||||
|
request.app.event_metadata_updater.publish(
|
||||||
|
EventMetadataTypeEnum.recognized_license_plate, (event_id, new_plate, new_score)
|
||||||
|
)
|
||||||
|
|
||||||
|
return JSONResponse(
|
||||||
|
content={
|
||||||
|
"success": True,
|
||||||
|
"message": f"Event {event_id} license plate set to {new_plate if new_plate is not None else 'None'}",
|
||||||
|
},
|
||||||
|
status_code=200,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@router.post(
|
@router.post(
|
||||||
"/events/{event_id}/description",
|
"/events/{event_id}/description",
|
||||||
response_model=GenericResponse,
|
response_model=GenericResponse,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user