From 83a0a518a93f28f6a791239082a9866a2c2c0ec0 Mon Sep 17 00:00:00 2001 From: Nick Mowen Date: Mon, 1 May 2023 13:48:53 -0600 Subject: [PATCH] Save event png db --- frigate/events/external.py | 17 ++++++++++++++++- frigate/images/external-event.png | Bin 0 -> 939 bytes 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 frigate/images/external-event.png diff --git a/frigate/events/external.py b/frigate/events/external.py index b414c9371..5c800a887 100644 --- a/frigate/events/external.py +++ b/frigate/events/external.py @@ -1,7 +1,9 @@ """Handle external events created by the user.""" +import base64 import cv2 import datetime +import glob import logging import os import random @@ -22,6 +24,7 @@ class ExternalEventProcessor: def __init__(self, config: FrigateConfig, queue: Queue) -> None: self.config = config self.queue = queue + self.default_thumbnail = None def create_manual_event( self, @@ -40,6 +43,10 @@ class ExternalEventProcessor: event_id = f"{now}-{rand_id}" self._write_snapshots(camera_config, event_id, snapshot_frame) + + if not self.default_thumbnail: + self._calculate_thumbnail_bytes() + self.queue.put( ( EventTypeEnum.api, @@ -52,7 +59,7 @@ class ExternalEventProcessor: "camera": camera, "start_time": now, "end_time": now + duration if duration is not None else None, - "thumbnail": "", # TODO create thumbnail icon + "thumbnail": self.default_thumbnail, "has_clip": camera_config.record.enabled and include_recording, "has_snapshot": True, }, @@ -68,6 +75,14 @@ class ExternalEventProcessor: (EventTypeEnum.api, "end", None, {"id": event_id, "end_time": now}) ) + def _calculate_thumbnail_bytes(self) -> None: + error_image = glob.glob("/opt/frigate/frigate/images/external-event.png") + + if len(error_image) > 0: + with open("/opt/frigate/frigate/images/external-event.png", 'rb') as img: + img_bytes = img.read() + self.default_thumbnail = base64.b64encode(img_bytes).decode("utf-8") + def _write_snapshots( self, camera_config: CameraConfig, event_id: str, img_bytes: any ) -> None: diff --git a/frigate/images/external-event.png b/frigate/images/external-event.png new file mode 100644 index 0000000000000000000000000000000000000000..5b396206ba18c10cc1f7f7253880098d4158d483 GIT binary patch literal 939 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBgK_VDt^}32_B-8UFtdUG?91=6~&m z|DKcnJ2d>a?E7!r0Ag5o{sQN`Z{`i(>{`CrG<>&e`EJ+z-KzPA zb@LC4=AX8$Uo4xx0@c_weYI`@lHY)eZJWMXH+{Em{%X_w)w&tT{$|zm&8F$QRnvEn zGN5=9NXiOmAW#;FT7U)u)qe*vKw7|Rtbin#0n`pO*183x(gv&y=mro2qzfbnAwlMV z6u?Bl4ggvK5l1Ew>Ooc@DZr)}Y$nJr$R;4O|NsBbJpU3X#B)o6{DK)6nOWJ`IXJm^ zcm+iyB&B6!<>VEW)iw1Djf_pqt*mXme1gIvqGHn0v$FH@3#+PY>lzxHnp@ktCr+L+ zZN|)5vllI1wqoU~)oV9z+r4N1p(CeGpE-N};??Un?%cco@X^y(uiw1=@bUB4Z$Ezh z`PVYrjTLAyW0JSKOP&&cpg52{+0(@_#N+teso}wg90VHl7b!G}3aXZc2#5wc=xA)b zek18%Q>^B$|NpO^6^trke{5l7w}Jm=*?pDmH}@(p(W}?gO^kflC9_HD+I zArmL?O<)ZAZdN;X@Cs#aW3-e*S5aG}mAw@V+Cr~YkUdr)xt4f_)} zOXi%a_&V`ggT>k>>)xh2G`O`~iwhKq&9DsEecLxCA?~Z}M)zNv9%bL(=3-W$vtZuI zjLq>Z4EvJQ*d~-Niqer0Tgq_2v03oOvF9^p`RM(uwVTg=H}T5kiQ1+Trqizac35_< ze5w{3$?{*_VcG1jk8O6;wFjPz?9t!QQ0lY7TG4T(!m8UpcnZ!j^)b9#Sr}-expF`M zhgJ4k${F*SVvHMo8%pFjvOAr(d^fmvhDnbx?{kCcMDG>%g&b^;-uNPL%$#eU>6G08 zZ(2%H8SU73UR%EtkVq_h#FcjG;=D^`!dA=Y8&n<2i|sy?*(