Cleanup after recordings refactor (#13518)

* Cleanup after recordings refactor

* Fix default retention mode

* Formatting

* Fix review item query

* Default review retention
This commit is contained in:
Nicolas Mowen
2024-09-03 08:49:50 -06:00
committed by GitHub
parent 21a50cc452
commit e66f47bdf6
3 changed files with 30 additions and 19 deletions

View File

@@ -5,9 +5,11 @@ import itertools
import logging
import os
import threading
from functools import reduce
from multiprocessing.synchronize import Event as MpEvent
from pathlib import Path
from peewee import operator
from playhouse.sqlite_ext import SqliteExtDatabase
from frigate.config import CameraConfig, FrigateConfig, RetainModeEnum
@@ -71,17 +73,26 @@ class RecordingCleanup(threading.Thread):
).timestamp()
expired_reviews: ReviewSegment = (
ReviewSegment.select(ReviewSegment.id)
.where(ReviewSegment.camera == "front_cam")
.where(
ReviewSegment.camera == config.name
and (
(
ReviewSegment.severity == "alert"
and ReviewSegment.end_time < alert_expire_date
)
or (
ReviewSegment.severity == "detection"
and ReviewSegment.end_time < detection_expire_date
)
reduce(
operator.or_,
[
reduce(
operator.and_,
[
(ReviewSegment.severity == "alert"),
(ReviewSegment.end_time < alert_expire_date),
],
),
reduce(
operator.and_,
[
(ReviewSegment.severity == "detection"),
(ReviewSegment.end_time < detection_expire_date),
],
),
],
)
)
.namedtuples()
@@ -89,7 +100,6 @@ class RecordingCleanup(threading.Thread):
max_deletes = 100000
deleted_reviews_list = list(map(lambda x: x[0], expired_reviews))
logger.info(f"the list is {deleted_reviews_list}")
for i in range(0, len(deleted_reviews_list), max_deletes):
ReviewSegment.delete().where(
ReviewSegment.id << deleted_reviews_list[i : i + max_deletes]