Remove favorite

This commit is contained in:
Nicolas Mowen 2024-02-11 05:49:15 -07:00
parent ae8932e27e
commit 3ab89d89df
3 changed files with 18 additions and 47 deletions

View File

@ -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

View File

@ -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 (
<Tooltip>
<TooltipTrigger asChild>
@ -21,11 +17,6 @@ export function AnimatedEventThumbnail({
backgroundImage: `url(${baseUrl}api/events/${event.id}/preview.gif)`,
}}
>
<LuStar
className="absolute h-6 w-6 text-yellow-300 top-1 right-1 cursor-pointer"
onClick={(e: Event) => (onFavorite ? onFavorite(e, event) : null)}
fill={event.retain_indefinitely ? "currentColor" : "none"}
/>
<div className="absolute bottom-0 w-full h-6 bg-gradient-to-t from-slate-900/50 to-transparent rounded">
<div className="absolute left-1 bottom-0 text-xs text-white w-full">
<TimeAgo time={event.start_time * 1000} dense />

View File

@ -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<FrigateEvent[]>(
const { data: allEvents } = useSWR<FrigateEvent[]>(
["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() {
<TooltipProvider>
<div className="flex">
{events.map((event) => {
return (
<AnimatedEventThumbnail
key={event.id}
event={event}
onFavorite={onFavorite}
/>
);
return <AnimatedEventThumbnail key={event.id} event={event} />;
})}
</div>
</TooltipProvider>