From 3ab89d89df4574b0899c8cc335c88f64b3d87fae Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Sun, 11 Feb 2024 05:49:15 -0700 Subject: [PATCH] Remove favorite --- frigate/http.py | 28 +++++++++---------- .../image/AnimatedEventThumbnail.tsx | 11 +------- web/src/pages/Live.tsx | 26 ++--------------- 3 files changed, 18 insertions(+), 47 deletions(-) diff --git a/frigate/http.py b/frigate/http.py index c7d9b979c..8ab7e2425 100644 --- a/frigate/http.py +++ b/frigate/http.py @@ -603,7 +603,7 @@ def event_preview(id: str, max_cache_age=2592000): ) start_ts = event.start_time - end_ts = event.start_time + 10 + end_ts = min(event.end_time - event.start_time, 20) if event.end_time else 20 if datetime.fromtimestamp(event.start_time) < datetime.now().replace( minute=0, second=0 @@ -643,7 +643,7 @@ def event_preview(id: str, max_cache_age=2592000): "-ss", f"00:{minutes}:{seconds}", "-t", - "20", + f"{end_ts - start_ts}", "-i", preview.path, "-r", @@ -1031,9 +1031,9 @@ def event_snapshot(id): else: response.headers["Cache-Control"] = "no-store" if download: - response.headers["Content-Disposition"] = ( - f"attachment; filename=snapshot-{id}.jpg" - ) + response.headers[ + "Content-Disposition" + ] = f"attachment; filename=snapshot-{id}.jpg" return response @@ -1220,9 +1220,9 @@ def event_clip(id): if download: response.headers["Content-Disposition"] = "attachment; filename=%s" % file_name response.headers["Content-Length"] = os.path.getsize(clip_path) - response.headers["X-Accel-Redirect"] = ( - f"/clips/{file_name}" # nginx: https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ignore_headers - ) + response.headers[ + "X-Accel-Redirect" + ] = f"/clips/{file_name}" # nginx: https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ignore_headers return response @@ -1927,9 +1927,9 @@ def get_recordings_storage_usage(): total_mb = recording_stats["total"] - camera_usages: dict[str, dict] = ( - current_app.storage_maintainer.calculate_camera_usages() - ) + camera_usages: dict[ + str, dict + ] = current_app.storage_maintainer.calculate_camera_usages() for camera_name in camera_usages.keys(): if camera_usages.get(camera_name, {}).get("usage"): @@ -2117,9 +2117,9 @@ def recording_clip(camera_name, start_ts, end_ts): if download: response.headers["Content-Disposition"] = "attachment; filename=%s" % file_name response.headers["Content-Length"] = os.path.getsize(path) - response.headers["X-Accel-Redirect"] = ( - f"/cache/{file_name}" # nginx: https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ignore_headers - ) + response.headers[ + "X-Accel-Redirect" + ] = f"/cache/{file_name}" # nginx: https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ignore_headers return response diff --git a/web/src/components/image/AnimatedEventThumbnail.tsx b/web/src/components/image/AnimatedEventThumbnail.tsx index e397d2eb4..c6e661603 100644 --- a/web/src/components/image/AnimatedEventThumbnail.tsx +++ b/web/src/components/image/AnimatedEventThumbnail.tsx @@ -6,12 +6,8 @@ import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/tooltip"; type AnimatedEventThumbnailProps = { event: FrigateEvent; - onFavorite?: (e: Event, event: FrigateEvent) => void; }; -export function AnimatedEventThumbnail({ - event, - onFavorite, -}: AnimatedEventThumbnailProps) { +export function AnimatedEventThumbnail({ event }: AnimatedEventThumbnailProps) { return ( @@ -21,11 +17,6 @@ export function AnimatedEventThumbnail({ backgroundImage: `url(${baseUrl}api/events/${event.id}/preview.gif)`, }} > - (onFavorite ? onFavorite(e, event) : null)} - fill={event.retain_indefinitely ? "currentColor" : "none"} - />
diff --git a/web/src/pages/Live.tsx b/web/src/pages/Live.tsx index 6f6d315d9..e8652d1f1 100644 --- a/web/src/pages/Live.tsx +++ b/web/src/pages/Live.tsx @@ -4,8 +4,7 @@ import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area"; import { TooltipProvider } from "@/components/ui/tooltip"; import { Event as FrigateEvent } from "@/types/event"; import { FrigateConfig } from "@/types/frigateConfig"; -import axios from "axios"; -import { useCallback, useMemo } from "react"; +import { useMemo } from "react"; import useSWR from "swr"; function Live() { @@ -13,7 +12,7 @@ function Live() { // recent events - const { data: allEvents, mutate: updateEvents } = useSWR( + const { data: allEvents } = useSWR( ["events", { limit: 10 }], { refreshInterval: 60000 } ); @@ -29,19 +28,6 @@ function Live() { return allEvents.filter((event) => event.start_time > cutoff); }, [allEvents]); - const onFavorite = useCallback(async (e: Event, event: FrigateEvent) => { - e.stopPropagation(); - let response; - if (!event.retain_indefinitely) { - response = await axios.post(`events/${event.id}/retain`); - } else { - response = await axios.delete(`events/${event.id}/retain`); - } - if (response.status === 200) { - updateEvents(); - } - }, []); - // camera live views const cameras = useMemo(() => { @@ -61,13 +47,7 @@ function Live() {
{events.map((event) => { - return ( - - ); + return ; })}