From 318fd70cff2acb93982f695d6d3b485b31a96921 Mon Sep 17 00:00:00 2001 From: Nick Mowen Date: Thu, 7 Dec 2023 18:29:35 -0700 Subject: [PATCH] Be more efficient about getting info --- frigate/http.py | 16 +++++++++++++--- web-new/src/pages/Review.tsx | 6 +++--- web-new/src/types/review.ts | 5 ++++- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/frigate/http.py b/frigate/http.py index e2d61ec0a..6b7ff8c3a 100644 --- a/frigate/http.py +++ b/frigate/http.py @@ -647,9 +647,19 @@ def hourly_timeline(): .iterator() ) + count = 0 + start = 0 + end = 0 hours: dict[str, list[dict[str, any]]] = {} for t in timeline: + if count == 0: + start = t["timestamp"] + else: + end = t["timestamp"] + + count += 1 + hour = ( datetime.fromtimestamp(t["timestamp"]).replace( minute=0, second=0, microsecond=0 @@ -665,9 +675,9 @@ def hourly_timeline(): return jsonify( { - "start": timeline[0].timestamp, - "end": timeline[-1].timestamp, - "count": timeline.count(), + "start": start, + "end": end, + "count": count, "hours": hours, } ) diff --git a/web-new/src/pages/Review.tsx b/web-new/src/pages/Review.tsx index 40bdeb45b..7b6f04a4e 100644 --- a/web-new/src/pages/Review.tsx +++ b/web-new/src/pages/Review.tsx @@ -23,14 +23,14 @@ export function Review() { } const cards: CardsData = {}; - Object.keys(hourlyTimeline) + Object.keys(hourlyTimeline["hours"]) .reverse() .forEach((hour) => { const day = new Date(parseInt(hour) * 1000); day.setHours(0, 0, 0, 0); const dayKey = (day.getTime() / 1000).toString(); const source_to_types: {[key: string]: string[]} = {}; - Object.values(hourlyTimeline[hour]).forEach((i) => { + Object.values(hourlyTimeline["hours"][hour]).forEach((i) => { const time = new Date(i.timestamp * 1000); time.setSeconds(0); time.setMilliseconds(0); @@ -46,7 +46,7 @@ export function Review() { cards[dayKey] = {}; } cards[dayKey][hour] = {}; - Object.values(hourlyTimeline[hour]).forEach((i) => { + Object.values(hourlyTimeline["hours"][hour]).forEach((i) => { const time = new Date(i.timestamp * 1000); time.setSeconds(0); time.setMilliseconds(0); diff --git a/web-new/src/types/review.ts b/web-new/src/types/review.ts index 904b43c59..a089be961 100644 --- a/web-new/src/types/review.ts +++ b/web-new/src/types/review.ts @@ -32,5 +32,8 @@ type Timeline = { } type HourlyTimeline = { - [key: string]: Timeline[]; + start: number, + end: number, + count: number, + hours: { [key: string]: Timeline[] }; } \ No newline at end of file