mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-06 19:25:22 +03:00
Add ability to filter events by start time
This commit is contained in:
parent
0858859939
commit
0f40b1bbb8
@ -56,6 +56,8 @@ from frigate.version import VERSION
|
|||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
DEFAULT_TIME_RANGE = "00:00,24:00"
|
||||||
|
|
||||||
bp = Blueprint("frigate", __name__)
|
bp = Blueprint("frigate", __name__)
|
||||||
|
|
||||||
|
|
||||||
@ -769,6 +771,7 @@ def events():
|
|||||||
limit = request.args.get("limit", 100)
|
limit = request.args.get("limit", 100)
|
||||||
after = request.args.get("after", type=float)
|
after = request.args.get("after", type=float)
|
||||||
before = request.args.get("before", type=float)
|
before = request.args.get("before", type=float)
|
||||||
|
time_range = request.args.get("time_range", DEFAULT_TIME_RANGE)
|
||||||
has_clip = request.args.get("has_clip", type=int)
|
has_clip = request.args.get("has_clip", type=int)
|
||||||
has_snapshot = request.args.get("has_snapshot", type=int)
|
has_snapshot = request.args.get("has_snapshot", type=int)
|
||||||
in_progress = request.args.get("in_progress", type=int)
|
in_progress = request.args.get("in_progress", type=int)
|
||||||
@ -851,6 +854,21 @@ def events():
|
|||||||
if before:
|
if before:
|
||||||
clauses.append((Event.start_time < before))
|
clauses.append((Event.start_time < before))
|
||||||
|
|
||||||
|
if time_range != DEFAULT_TIME_RANGE:
|
||||||
|
# get timezone arg to ensure browser times are used
|
||||||
|
tz_name = request.args.get("timezone", default="utc", type=str)
|
||||||
|
hour_modifier, minute_modifier = get_tz_modifiers(tz_name)
|
||||||
|
|
||||||
|
times = time_range.split(",")
|
||||||
|
time_after = times[0]
|
||||||
|
time_before = times[1]
|
||||||
|
|
||||||
|
start_hour_fun = fn.strftime(
|
||||||
|
"%H:%M", fn.datetime(Event.start_time, "unixepoch", hour_modifier, minute_modifier)
|
||||||
|
)
|
||||||
|
clauses.append((start_hour_fun > time_after))
|
||||||
|
clauses.append((start_hour_fun < time_before))
|
||||||
|
|
||||||
if has_clip is not None:
|
if has_clip is not None:
|
||||||
clauses.append((Event.has_clip == has_clip))
|
clauses.append((Event.has_clip == has_clip))
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user