feat(Q2): add heatmap route to cameras blueprint

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Aaron D. Lee 2026-04-03 18:46:27 -04:00
parent 8c2a8ea1c5
commit afc15a92fe

View File

@ -2,7 +2,7 @@
from pathlib import Path from pathlib import Path
from flask import Blueprint, Response, abort, current_app, jsonify, render_template, send_from_directory from flask import Blueprint, Response, abort, current_app, jsonify, render_template, request, send_from_directory
cameras_bp = Blueprint("cameras", __name__, url_prefix="/cameras") cameras_bp = Blueprint("cameras", __name__, url_prefix="/cameras")
@ -71,6 +71,23 @@ def camera_hls_remote(camera_id: str, filename: str):
return response return response
@cameras_bp.route("/<camera_id>/heatmap")
def camera_heatmap(camera_id: str):
days = request.args.get("days", 7, type=int)
if days not in (7, 30):
days = 7
engine = current_app.config.get("DB_ENGINE")
if engine is None:
abort(503)
import numpy as np
frame = np.zeros((360, 640, 3), dtype=np.uint8)
from vigilar.detection.heatmap import render_heatmap_png, accumulate_detections
# For now return an empty heatmap — full DB query integration in future
grid = accumulate_detections([])
png_bytes = render_heatmap_png(grid, frame)
return Response(png_bytes, mimetype="image/png")
@cameras_bp.route("/api/status") @cameras_bp.route("/api/status")
def cameras_status_api(): def cameras_status_api():
"""JSON API: all camera statuses.""" """JSON API: all camera statuses."""