mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-04 18:25:22 +03:00
Store better data
This commit is contained in:
parent
f2d8298337
commit
ea3e7004ba
@ -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):
|
||||
|
||||
@ -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()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user