Remove redundant if and have should_update_db include clip or snapshot requirement.

This commit is contained in:
Nick Mowen 2022-03-13 12:58:53 -06:00
parent 985c57aded
commit 745e7b22af

View File

@ -15,18 +15,21 @@ from frigate.models import Event
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def should_insert_db(prev_event, current_event): def should_insert_db(prev_event, current_event):
"""If current event has new clip or snapshot."""
return ( return (
(not prev_event["has_clip"] and not prev_event["has_snapshot"]) (not prev_event["has_clip"] and not prev_event["has_snapshot"])
and (current_event["has_clip"] or current_event["has_snapshot"]) and (current_event["has_clip"] or current_event["has_snapshot"])
) )
def should_update_db(prev_event, current_event): def should_update_db(prev_event, current_event):
"""If current_event has updated fields and (clip or snapshot)."""
return ( return (
prev_event["top_score"] != current_event["top_score"] (current_event["has_clip"] or current_event["has_snapshot"])
or prev_event["entered_zones"] != current_event["entered_zones"] and (prev_event["top_score"] != current_event["top_score"]
or prev_event["thumbnail"] != current_event["thumbnail"] or prev_event["entered_zones"] != current_event["entered_zones"]
or prev_event["has_clip"] != current_event["has_clip"] or prev_event["thumbnail"] != current_event["thumbnail"]
or prev_event["has_snapshot"] != current_event["has_snapshot"] or prev_event["has_clip"] != current_event["has_clip"]
or prev_event["has_snapshot"] != current_event["has_snapshot"])
) )
@ -68,45 +71,43 @@ class EventProcessor(threading.Thread):
): ):
self.events_in_process[event_data["id"]] = event_data self.events_in_process[event_data["id"]] = event_data
# TODO: this will generate a lot of db activity possibly # TODO: this will generate a lot of db activity possibly
if event_data["has_clip"] or event_data["has_snapshot"]: Event.insert(
Event.insert( id=event_data["id"],
id=event_data["id"], label=event_data["label"],
label=event_data["label"], camera=camera,
camera=camera, start_time=event_data["start_time"] - event_config.pre_capture,
start_time=event_data["start_time"] - event_config.pre_capture, end_time=None,
end_time=None, top_score=event_data["top_score"],
top_score=event_data["top_score"], false_positive=event_data["false_positive"],
false_positive=event_data["false_positive"], zones=list(event_data["entered_zones"]),
zones=list(event_data["entered_zones"]), thumbnail=event_data["thumbnail"],
thumbnail=event_data["thumbnail"], region=event_data["region"],
region=event_data["region"], box=event_data["box"],
box=event_data["box"], area=event_data["area"],
area=event_data["area"], has_clip=event_data["has_clip"],
has_clip=event_data["has_clip"], has_snapshot=event_data["has_snapshot"],
has_snapshot=event_data["has_snapshot"], ).execute()
).execute()
elif event_type == "update" and should_update_db( elif event_type == "update" and should_update_db(
self.events_in_process[event_data["id"]], event_data self.events_in_process[event_data["id"]], event_data
): ):
self.events_in_process[event_data["id"]] = event_data self.events_in_process[event_data["id"]] = event_data
# TODO: this will generate a lot of db activity possibly # TODO: this will generate a lot of db activity possibly
if event_data["has_clip"] or event_data["has_snapshot"]: Event.update(
Event.update( label=event_data["label"],
label=event_data["label"], camera=camera,
camera=camera, start_time=event_data["start_time"] - event_config.pre_capture,
start_time=event_data["start_time"] - event_config.pre_capture, end_time=None,
end_time=None, top_score=event_data["top_score"],
top_score=event_data["top_score"], false_positive=event_data["false_positive"],
false_positive=event_data["false_positive"], zones=list(event_data["entered_zones"]),
zones=list(event_data["entered_zones"]), thumbnail=event_data["thumbnail"],
thumbnail=event_data["thumbnail"], region=event_data["region"],
region=event_data["region"], box=event_data["box"],
box=event_data["box"], area=event_data["area"],
area=event_data["area"], has_clip=event_data["has_clip"],
has_clip=event_data["has_clip"], has_snapshot=event_data["has_snapshot"],
has_snapshot=event_data["has_snapshot"], ).where(Event.id == event_data["id"]).execute()
).where(Event.id == event_data["id"]).execute()
elif event_type == "end": elif event_type == "end":
if event_data["has_clip"] or event_data["has_snapshot"]: if event_data["has_clip"] or event_data["has_snapshot"]: