From 95385c8aa7ccbb4a5b4607c2a6b0c320fe2582fe Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Tue, 4 Jun 2024 06:35:56 -0600 Subject: [PATCH] Fix comparison and preview retrieval --- frigate/api/export.py | 1 - frigate/record/export.py | 46 ++++++++++++++++++++++------------------ 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/frigate/api/export.py b/frigate/api/export.py index a3db5bb6f..1f4e8e417 100644 --- a/frigate/api/export.py +++ b/frigate/api/export.py @@ -155,7 +155,6 @@ def export_delete(id: str): except psutil.Error: continue - logger.error(f"comparing {export.video_path.split('/')[-1]} to {files_in_use}") if export.video_path.split("/")[-1] in files_in_use: return make_response( jsonify( diff --git a/frigate/record/export.py b/frigate/record/export.py index efc155838..6e30656d4 100644 --- a/frigate/record/export.py +++ b/frigate/record/export.py @@ -11,6 +11,8 @@ import threading from enum import Enum from pathlib import Path +from peewee import DoesNotExist + from frigate.config import FrigateConfig from frigate.const import ( CACHE_DIR, @@ -72,30 +74,32 @@ class RecordingExporter(threading.Thread): if datetime.datetime.fromtimestamp( self.start_time - ) < datetime.datetime.now().replace(minute=0, second=0): + ) < datetime.datetime.now().astimezone(datetime.timezone.dst).replace( + minute=0, second=0, microsecond=0 + ): # has preview mp4 - preview: Previews = ( - Previews.select( - Previews.camera, - Previews.path, - Previews.duration, - Previews.start_time, - Previews.end_time, - ) - .where( - Previews.start_time.between(self.start_time, self.end_time) - | Previews.end_time.between(self.start_time, self.end_time) - | ( - (self.start_time > Previews.start_time) - & (self.end_time < Previews.end_time) + try: + preview: Previews = ( + Previews.select( + Previews.camera, + Previews.path, + Previews.duration, + Previews.start_time, + Previews.end_time, ) + .where( + Previews.start_time.between(self.start_time, self.end_time) + | Previews.end_time.between(self.start_time, self.end_time) + | ( + (self.start_time > Previews.start_time) + & (self.end_time < Previews.end_time) + ) + ) + .where(Previews.camera == self.camera) + .limit(1) + .get() ) - .where(Previews.camera == self.camera) - .limit(1) - .get() - ) - - if not preview: + except DoesNotExist: return "" diff = self.start_time - preview.start_time