Send before / after on messages

This commit is contained in:
Nicolas Mowen 2024-04-22 14:49:38 -06:00
parent 9070ba23f0
commit c6b46d20a3

View File

@ -146,15 +146,41 @@ class ReviewSegmentMaintainer(threading.Thread):
self.stop_event = stop_event self.stop_event = stop_event
def update_segment(self, segment: PendingReviewSegment) -> None: def new_segment(
"""Update segment.""" self,
seg_data = segment.get_data(ended=False) segment: PendingReviewSegment,
self.requestor.send_data(UPSERT_REVIEW_SEGMENT, seg_data) ) -> None:
"""New segment."""
new_data = segment.get_data(ended=False)
self.requestor.send_data(UPSERT_REVIEW_SEGMENT, new_data)
self.requestor.send_data( self.requestor.send_data(
"reviews", "reviews",
json.dumps( {
{"type": "update", "review": {k.name: v for k, v in seg_data.items()}} "type": "new",
), "before": {},
"after": json.dumps({k.name: v for k, v in new_data.items()}),
},
)
def update_segment(
self,
segment: PendingReviewSegment,
camera_config: CameraConfig,
frame,
objects: list[TrackedObject],
) -> None:
"""Update segment."""
prev_data = segment.get_data(ended=False)
segment.update_frame(camera_config, frame, objects)
new_data = segment.get_data(ended=False)
self.requestor.send_data(UPSERT_REVIEW_SEGMENT, new_data)
self.requestor.send_data(
"reviews",
{
"type": "update",
"before": json.dumps({k.name: v for k, v in prev_data.items()}),
"after": json.dumps({k.name: v for k, v in new_data.items()}),
},
) )
def end_segment(self, segment: PendingReviewSegment) -> None: def end_segment(self, segment: PendingReviewSegment) -> None:
@ -219,9 +245,10 @@ class ReviewSegmentMaintainer(threading.Thread):
yuv_frame = self.frame_manager.get( yuv_frame = self.frame_manager.get(
frame_id, camera_config.frame_shape_yuv frame_id, camera_config.frame_shape_yuv
) )
segment.update_frame(camera_config, yuv_frame, active_objects) self.update_segment(
segment, camera_config, yuv_frame, active_objects
)
self.frame_manager.close(frame_id) self.frame_manager.close(frame_id)
self.update_segment(segment)
except FileNotFoundError: except FileNotFoundError:
return return
else: else:
@ -317,7 +344,7 @@ class ReviewSegmentMaintainer(threading.Thread):
camera_config, yuv_frame, active_objects camera_config, yuv_frame, active_objects
) )
self.frame_manager.close(frame_id) self.frame_manager.close(frame_id)
self.update_segment(self.active_review_segments[camera]) self.new_segment(self.active_review_segments[camera])
except FileNotFoundError: except FileNotFoundError:
return return