mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-05 02:35:22 +03:00
Add api with filtering
This commit is contained in:
parent
ea3e7004ba
commit
2da8581729
@ -417,7 +417,7 @@ def event_thumbnail(id, max_cache_age=2592000):
|
|||||||
@bp.route("/timeline")
|
@bp.route("/timeline")
|
||||||
def timeline():
|
def timeline():
|
||||||
camera = request.args.get("camera", "all")
|
camera = request.args.get("camera", "all")
|
||||||
|
source_id = request.args.get("source_id", type=str)
|
||||||
limit = request.args.get("limit", 100)
|
limit = request.args.get("limit", 100)
|
||||||
|
|
||||||
clauses = []
|
clauses = []
|
||||||
@ -431,8 +431,18 @@ def timeline():
|
|||||||
Timeline.data,
|
Timeline.data,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
if camera != "all":
|
||||||
|
clauses.append((Timeline.camera == camera))
|
||||||
|
|
||||||
|
if source_id:
|
||||||
|
clauses.append((Timeline.source_id == source_id))
|
||||||
|
|
||||||
|
if len(clauses) == 0:
|
||||||
|
clauses.append((True))
|
||||||
|
|
||||||
timeline = (
|
timeline = (
|
||||||
Timeline.select(*selected_columns)
|
Timeline.select(*selected_columns)
|
||||||
|
.where(reduce(operator.and_, clauses))
|
||||||
.order_by(Timeline.timestamp.asc())
|
.order_by(Timeline.timestamp.asc())
|
||||||
.limit(limit)
|
.limit(limit)
|
||||||
)
|
)
|
||||||
|
|||||||
@ -63,7 +63,7 @@ class TimelineProcessor(threading.Thread):
|
|||||||
source_id=event_data["id"],
|
source_id=event_data["id"],
|
||||||
class_type="visible",
|
class_type="visible",
|
||||||
data={
|
data={
|
||||||
"box": event_data["box"],
|
"box": event_data["box"], # TODO store as relative
|
||||||
"label": event_data["label"],
|
"label": event_data["label"],
|
||||||
"region": event_data["region"],
|
"region": event_data["region"],
|
||||||
},
|
},
|
||||||
@ -79,7 +79,7 @@ class TimelineProcessor(threading.Thread):
|
|||||||
source_id=event_data["id"],
|
source_id=event_data["id"],
|
||||||
class_type="entered_zone",
|
class_type="entered_zone",
|
||||||
data={
|
data={
|
||||||
"box": event_data["box"],
|
"box": event_data["box"], # TODO store as relative
|
||||||
"label": event_data["label"],
|
"label": event_data["label"],
|
||||||
"region": event_data["region"],
|
"region": event_data["region"],
|
||||||
"zones": event_data["current_zones"],
|
"zones": event_data["current_zones"],
|
||||||
@ -93,7 +93,7 @@ class TimelineProcessor(threading.Thread):
|
|||||||
source_id=event_data["id"],
|
source_id=event_data["id"],
|
||||||
class_type="gone",
|
class_type="gone",
|
||||||
data={
|
data={
|
||||||
"box": event_data["box"],
|
"box": event_data["box"], # TODO store as relative
|
||||||
"label": event_data["label"],
|
"label": event_data["label"],
|
||||||
"region": event_data["region"],
|
"region": event_data["region"],
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user