Store better data

This commit is contained in:
Nick Mowen 2023-04-20 16:21:38 -06:00
parent f2d8298337
commit ea3e7004ba
2 changed files with 36 additions and 7 deletions

View File

@ -33,7 +33,7 @@ from playhouse.shortcuts import model_to_dict
from frigate.config import FrigateConfig
from frigate.const import CLIPS_DIR, MAX_SEGMENT_DURATION, RECORD_DIR
from frigate.models import Event, Recordings
from frigate.models import Event, Recordings, Timeline
from frigate.object_processing import TrackedObject
from frigate.stats import stats_snapshot
from frigate.util import (
@ -414,6 +414,32 @@ def event_thumbnail(id, max_cache_age=2592000):
return response
@bp.route("/timeline")
def timeline():
camera = request.args.get("camera", "all")
limit = request.args.get("limit", 100)
clauses = []
selected_columns = [
Timeline.timestamp,
Timeline.camera,
Timeline.source,
Timeline.source_id,
Timeline.class_type,
Timeline.data,
]
timeline = (
Timeline.select(*selected_columns)
.order_by(Timeline.timestamp.asc())
.limit(limit)
)
return jsonify([model_to_dict(t) for t in timeline])
@bp.route("/<camera_name>/<label>/best.jpg")
@bp.route("/<camera_name>/<label>/thumbnail.jpg")
def label_thumbnail(camera_name, label):

View File

@ -63,10 +63,11 @@ class TimelineProcessor(threading.Thread):
source_id=event_data["id"],
class_type="visible",
data={
"region": event_data["region"],
"box": event_data["box"],
"label": event_data["label"],
"region": event_data["region"],
},
)
).execute()
elif (
event_type == "update"
and prev_event_data["current_zones"] != event_data["current_zones"]
@ -78,11 +79,12 @@ class TimelineProcessor(threading.Thread):
source_id=event_data["id"],
class_type="entered_zone",
data={
"region": event_data["region"],
"box": event_data["box"],
"label": event_data["label"],
"region": event_data["region"],
"zones": event_data["current_zones"],
},
)
).execute()
elif event_type == "end":
Timeline.insert(
timestamp=event_data["frame_time"],
@ -91,7 +93,8 @@ class TimelineProcessor(threading.Thread):
source_id=event_data["id"],
class_type="gone",
data={
"region": event_data["region"],
"box": event_data["box"],
"label": event_data["label"],
"region": event_data["region"],
},
)
).execute()