mirror of
https://github.com/blakeblackshear/frigate.git
synced 2025-02-23 00:18:31 +01:00
fix recording retention logic
This commit is contained in:
parent
a476bc9885
commit
5d94c68d66
@ -87,12 +87,9 @@ class EventProcessor(threading.Thread):
|
||||
try:
|
||||
event_type, camera, event_data = self.event_queue.get(timeout=10)
|
||||
except queue.Empty:
|
||||
# if not self.stop_event.is_set():
|
||||
# self.refresh_cache()
|
||||
continue
|
||||
|
||||
logger.debug(f"Event received: {event_type} {camera} {event_data['id']}")
|
||||
# self.refresh_cache()
|
||||
|
||||
if event_type == "start":
|
||||
self.events_in_process[event_data["id"]] = event_data
|
||||
|
@ -173,12 +173,12 @@ class RecordingMaintainer(threading.Thread):
|
||||
retain[recording.path] = True
|
||||
|
||||
# Actually expire recordings
|
||||
for path, keep in retain.items():
|
||||
if not keep:
|
||||
Path(path).unlink(missing_ok=True)
|
||||
Recordings.delete_by_id(recording.recording_id)
|
||||
delete_paths = [path for path, keep in retain.items() if not keep]
|
||||
for path in delete_paths:
|
||||
Path(path).unlink(missing_ok=True)
|
||||
Recordings.delete().where(Recordings.path << delete_paths).execute()
|
||||
|
||||
# Update Event
|
||||
# Update Events to reflect deleted recordings
|
||||
event_no_recordings = (
|
||||
Event.select()
|
||||
.join(
|
||||
@ -202,8 +202,7 @@ class RecordingMaintainer(threading.Thread):
|
||||
)
|
||||
.where(Recordings.id.is_null())
|
||||
)
|
||||
update = Event.update(has_clip=False).where(Event.id << event_no_recordings)
|
||||
update.execute()
|
||||
Event.update(has_clip=False).where(Event.id << event_no_recordings).execute()
|
||||
|
||||
event_paths = list(retain.keys())
|
||||
|
||||
@ -218,7 +217,7 @@ class RecordingMaintainer(threading.Thread):
|
||||
expire_before = (
|
||||
datetime.datetime.now() - datetime.timedelta(days=expire_days)
|
||||
).timestamp()
|
||||
if recording.end_time >= expire_before:
|
||||
if recording.end_time < expire_before:
|
||||
Path(recording.path).unlink(missing_ok=True)
|
||||
Recordings.delete_by_id(recording.id)
|
||||
|
||||
@ -239,7 +238,7 @@ class RecordingMaintainer(threading.Thread):
|
||||
expire_before = (
|
||||
datetime.datetime.now() - datetime.timedelta(days=expire_days)
|
||||
).timestamp()
|
||||
if recording.end_time >= expire_before:
|
||||
if recording.end_time < expire_before:
|
||||
Path(recording.path).unlink(missing_ok=True)
|
||||
Recordings.delete_by_id(recording.id)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user