mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-05 18:55:23 +03:00
Update list once a day to ensure new labels are cleaned up
This commit is contained in:
parent
b155b128a0
commit
54699d41db
@ -28,9 +28,10 @@ class EventCleanup(threading.Thread):
|
|||||||
self.stop_event = stop_event
|
self.stop_event = stop_event
|
||||||
self.camera_keys = list(self.config.cameras.keys())
|
self.camera_keys = list(self.config.cameras.keys())
|
||||||
self.removed_camera_labels: list[str] = None
|
self.removed_camera_labels: list[str] = None
|
||||||
self.camera_labels: dict[str, list] = {}
|
self.camera_labels: dict[str, dict[str, any]] = {}
|
||||||
|
|
||||||
def get_removed_camera_labels(self) -> list[Event]:
|
def get_removed_camera_labels(self) -> list[Event]:
|
||||||
|
"""Get a list of distinct labels for removed cameras."""
|
||||||
if self.removed_camera_labels is None:
|
if self.removed_camera_labels is None:
|
||||||
self.removed_camera_labels = list(
|
self.removed_camera_labels = list(
|
||||||
Event.select(Event.label)
|
Event.select(Event.label)
|
||||||
@ -42,15 +43,23 @@ class EventCleanup(threading.Thread):
|
|||||||
return self.removed_camera_labels
|
return self.removed_camera_labels
|
||||||
|
|
||||||
def get_camera_labels(self, camera: str) -> list[Event]:
|
def get_camera_labels(self, camera: str) -> list[Event]:
|
||||||
if self.camera_labels.get(camera) is None:
|
"""Get a list of distinct labels for each camera, updating once a day."""
|
||||||
self.camera_labels[camera] = list(
|
if (
|
||||||
|
self.camera_labels.get(camera) is None
|
||||||
|
or self.camera_labels[camera]["last_update"]
|
||||||
|
< (datetime.datetime.now() - datetime.timedelta(days=1)).timestamp()
|
||||||
|
):
|
||||||
|
self.camera_labels[camera] = {
|
||||||
|
"last_update": datetime.datetime.now().timestamp(),
|
||||||
|
"labels": list(
|
||||||
Event.select(Event.label)
|
Event.select(Event.label)
|
||||||
.where(Event.camera == camera)
|
.where(Event.camera == camera)
|
||||||
.distinct()
|
.distinct()
|
||||||
.execute()
|
.execute()
|
||||||
)
|
),
|
||||||
|
}
|
||||||
|
|
||||||
return self.camera_labels[camera]
|
return self.camera_labels[camera]["labels"]
|
||||||
|
|
||||||
def expire(self, media_type: EventCleanupType) -> None:
|
def expire(self, media_type: EventCleanupType) -> None:
|
||||||
## Expire events from unlisted cameras based on the global config
|
## Expire events from unlisted cameras based on the global config
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user