From 155d83d869c1fa8176bbf69e1353d4e0be485e76 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Mon, 9 Dec 2024 07:35:24 -0700 Subject: [PATCH] Cleanup events based on review severity --- frigate/events/cleanup.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/frigate/events/cleanup.py b/frigate/events/cleanup.py index 86a67ed26..00eee864f 100644 --- a/frigate/events/cleanup.py +++ b/frigate/events/cleanup.py @@ -275,6 +275,7 @@ class EventCleanup(threading.Thread): Event.update(update_params).where(Event.id << events_to_update).execute() events_to_update = [] + now = datetime.datetime.now() ## Expire events from cameras based on the camera config for name, camera in self.config.cameras.items(): @@ -282,9 +283,11 @@ class EventCleanup(threading.Thread): camera.record.alerts.retain.days, camera.record.detections.retain.days, ) - - expire_after = ( - datetime.datetime.now() - datetime.timedelta(days=expire_days) + alert_expire_date = ( + now - datetime.timedelta(days=camera.record.alerts.retain.days) + ).timestamp() + detection_expire_date = ( + now - datetime.timedelta(days=camera.record.detections.retain.days) ).timestamp() # grab all events after specific time expired_events = ( @@ -294,8 +297,12 @@ class EventCleanup(threading.Thread): ) .where( Event.camera == name, - Event.start_time < expire_after, Event.retain_indefinitely == False, + (Event.end_time < alert_expire_date) + | ( + (Event.data["max_severity"] == "detection") + & (Event.end_time < detection_expire_date) + ), ) .namedtuples() .iterator()