diff --git a/frigate/api/defs/events_query_parameters.py b/frigate/api/defs/events_query_parameters.py index 4639b7f59..5a2b61d43 100644 --- a/frigate/api/defs/events_query_parameters.py +++ b/frigate/api/defs/events_query_parameters.py @@ -47,6 +47,7 @@ class EventsSearchQueryParams(BaseModel): time_range: Optional[str] = DEFAULT_TIME_RANGE has_clip: Optional[bool] = None has_snapshot: Optional[bool] = None + is_submitted: Optional[bool] = None timezone: Optional[str] = "utc" min_score: Optional[float] = None max_score: Optional[float] = None diff --git a/frigate/api/event.py b/frigate/api/event.py index cf0ac26cc..bff1edc1a 100644 --- a/frigate/api/event.py +++ b/frigate/api/event.py @@ -360,6 +360,7 @@ def events_search(request: Request, params: EventsSearchQueryParams = Depends()) time_range = params.time_range has_clip = params.has_clip has_snapshot = params.has_snapshot + is_submitted = params.is_submitted # for similarity search event_id = params.event_id @@ -441,6 +442,12 @@ def events_search(request: Request, params: EventsSearchQueryParams = Depends()) if has_snapshot is not None: event_filters.append((Event.has_snapshot == has_snapshot)) + if is_submitted is not None: + if is_submitted == 0: + event_filters.append((Event.plus_id.is_null())) + elif is_submitted > 0: + event_filters.append((Event.plus_id != "")) + if min_score is not None and max_score is not None: event_filters.append((Event.data["score"].between(min_score, max_score))) else: