Skip to content

Commit

Permalink
Clear ongoing reviews on startup (blakeblackshear#11097)
Browse files Browse the repository at this point in the history
* Add topic to clear ongoing review segments

* Clear ongoing review items on startup
  • Loading branch information
NickM-27 committed Apr 24, 2024
1 parent 313e7c0 commit c035241
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 1 deletion.
6 changes: 6 additions & 0 deletions frigate/comms/dispatcher.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
"""Handle communication between Frigate and other applications."""

import datetime
import logging
from abc import ABC, abstractmethod
from typing import Any, Callable, Optional

from frigate.comms.config_updater import ConfigPublisher
from frigate.config import BirdseyeModeEnum, FrigateConfig
from frigate.const import (
CLEAR_ONGOING_REVIEW_SEGMENTS,
INSERT_MANY_RECORDINGS,
INSERT_PREVIEW,
REQUEST_REGION_GRID,
Expand Down Expand Up @@ -116,6 +118,10 @@ def _receive(self, topic: str, payload: str) -> Optional[Any]:
)
.execute()
)
elif topic == CLEAR_ONGOING_REVIEW_SEGMENTS:
ReviewSegment.update(end_time=datetime.datetime.now().timestamp()).where(
ReviewSegment.end_time == None
).execute()
else:
self.publish(topic, payload, retain=False)

Expand Down
1 change: 1 addition & 0 deletions frigate/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@
INSERT_PREVIEW = "insert_preview"
REQUEST_REGION_GRID = "request_region_grid"
UPSERT_REVIEW_SEGMENT = "upsert_review_segment"
CLEAR_ONGOING_REVIEW_SEGMENTS = "clear_ongoing_review_segments"

# Autotracking

Expand Down
10 changes: 9 additions & 1 deletion frigate/review/maintainer.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,12 @@
from frigate.comms.detections_updater import DetectionSubscriber, DetectionTypeEnum
from frigate.comms.inter_process import InterProcessRequestor
from frigate.config import CameraConfig, FrigateConfig
from frigate.const import ALL_ATTRIBUTE_LABELS, CLIPS_DIR, UPSERT_REVIEW_SEGMENT
from frigate.const import (
ALL_ATTRIBUTE_LABELS,
CLEAR_ONGOING_REVIEW_SEGMENTS,
CLIPS_DIR,
UPSERT_REVIEW_SEGMENT,
)
from frigate.events.external import ManualEventState
from frigate.models import ReviewSegment
from frigate.object_processing import TrackedObject
Expand Down Expand Up @@ -146,6 +151,9 @@ def __init__(self, config: FrigateConfig, stop_event: MpEvent):

self.stop_event = stop_event

# clear ongoing review segments from last instance
self.requestor.send_data(CLEAR_ONGOING_REVIEW_SEGMENTS, "")

def new_segment(
self,
segment: PendingReviewSegment,
Expand Down

0 comments on commit c035241

Please sign in to comment.