feat: Add support for Frigate reviews / detections [initial PR] (#2315)

- Add support for Frigate reviews / detections.
 - Add support for GenAI metadata.
- Significant internal refactor to more flexible "UnifiedQuery" to allow
mixing cameras with simple metadata and review metadata (e.g. a timeline
view of a Frigate camera with reviews, and a Reolink camera with simple
metadata).
 - Add support for folder media as camera media.

There are a few more PRs to commit prior to this going live, but
commiting this for now due to the scale of the change.

BREAKING CHANGE: `media_type` and `events_type` are retired under
`live`, `viewer` and `timeline` configuration sections, instead media
type is associated (once) with the camera under `media`.
This commit is contained in:
Dermot Duffy
2026-01-19 13:32:50 -08:00
committed by GitHub
parent 6eb0a87ca8
commit fc32727860
215 changed files with 14491 additions and 6160 deletions
+4 -33
View File
@@ -2,6 +2,7 @@
display: flex;
flex-direction: row;
box-sizing: border-box;
gap: 2px;
// Ensure control icons are relative to the thumbnail.
position: relative;
@@ -19,6 +20,9 @@
border-radius: var(--advanced-camera-card-border-radius-final);
padding: 2px;
// Additional padding on the right to match the gap specified above.
padding-right: 4px;
// When details are enabled, use a background color so that the details have
// contrast with the background.
background-color: var(--advanced-camera-card-thumbnail-background);
@@ -28,39 +32,6 @@
transform: scale(1.04);
}
advanced-camera-card-icon {
position: absolute;
border-radius: 50%;
color: var(--advanced-camera-card-thumbnail-icon-color);
cursor: pointer;
transition:
opacity 0.2s ease-in-out,
color 0.2s ease-in-out;
}
advanced-camera-card-icon:hover {
opacity: 1;
}
advanced-camera-card-icon.star {
top: 3px;
left: 3px;
}
advanced-camera-card-icon.star.starred {
color: var(--advanced-camera-card-thumbnail-icon-favorite-color);
}
advanced-camera-card-icon.timeline {
top: 3px;
right: 3px;
}
advanced-camera-card-icon.download {
right: 3px;
bottom: 3px;
}
advanced-camera-card-thumbnail-details {
flex: 1;
}