mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-04-15 03:22:10 +03:00
protect preview endpoints
This commit is contained in:
parent
39cb3f7217
commit
6fbf7ec2c2
@ -5,9 +5,10 @@ import os
|
|||||||
from datetime import datetime, timedelta, timezone
|
from datetime import datetime, timedelta, timezone
|
||||||
|
|
||||||
import pytz
|
import pytz
|
||||||
from fastapi import APIRouter
|
from fastapi import APIRouter, Depends
|
||||||
from fastapi.responses import JSONResponse
|
from fastapi.responses import JSONResponse
|
||||||
|
|
||||||
|
from frigate.api.auth import require_camera_access
|
||||||
from frigate.api.defs.tags import Tags
|
from frigate.api.defs.tags import Tags
|
||||||
from frigate.const import BASE_DIR, CACHE_DIR, PREVIEW_FRAME_TYPE
|
from frigate.const import BASE_DIR, CACHE_DIR, PREVIEW_FRAME_TYPE
|
||||||
from frigate.models import Previews
|
from frigate.models import Previews
|
||||||
@ -18,7 +19,10 @@ logger = logging.getLogger(__name__)
|
|||||||
router = APIRouter(tags=[Tags.preview])
|
router = APIRouter(tags=[Tags.preview])
|
||||||
|
|
||||||
|
|
||||||
@router.get("/preview/{camera_name}/start/{start_ts}/end/{end_ts}")
|
@router.get(
|
||||||
|
"/preview/{camera_name}/start/{start_ts}/end/{end_ts}",
|
||||||
|
dependencies=[Depends(require_camera_access)],
|
||||||
|
)
|
||||||
def preview_ts(camera_name: str, start_ts: float, end_ts: float):
|
def preview_ts(camera_name: str, start_ts: float, end_ts: float):
|
||||||
"""Get all mp4 previews relevant for time period."""
|
"""Get all mp4 previews relevant for time period."""
|
||||||
if camera_name != "all":
|
if camera_name != "all":
|
||||||
@ -71,7 +75,10 @@ def preview_ts(camera_name: str, start_ts: float, end_ts: float):
|
|||||||
return JSONResponse(content=clips, status_code=200)
|
return JSONResponse(content=clips, status_code=200)
|
||||||
|
|
||||||
|
|
||||||
@router.get("/preview/{year_month}/{day}/{hour}/{camera_name}/{tz_name}")
|
@router.get(
|
||||||
|
"/preview/{year_month}/{day}/{hour}/{camera_name}/{tz_name}",
|
||||||
|
dependencies=[Depends(require_camera_access)],
|
||||||
|
)
|
||||||
def preview_hour(year_month: str, day: int, hour: int, camera_name: str, tz_name: str):
|
def preview_hour(year_month: str, day: int, hour: int, camera_name: str, tz_name: str):
|
||||||
"""Get all mp4 previews relevant for time period given the timezone"""
|
"""Get all mp4 previews relevant for time period given the timezone"""
|
||||||
parts = year_month.split("-")
|
parts = year_month.split("-")
|
||||||
@ -86,7 +93,10 @@ def preview_hour(year_month: str, day: int, hour: int, camera_name: str, tz_name
|
|||||||
return preview_ts(camera_name, start_ts, end_ts)
|
return preview_ts(camera_name, start_ts, end_ts)
|
||||||
|
|
||||||
|
|
||||||
@router.get("/preview/{camera_name}/start/{start_ts}/end/{end_ts}/frames")
|
@router.get(
|
||||||
|
"/preview/{camera_name}/start/{start_ts}/end/{end_ts}/frames",
|
||||||
|
dependencies=[Depends(require_camera_access)],
|
||||||
|
)
|
||||||
def get_preview_frames_from_cache(camera_name: str, start_ts: float, end_ts: float):
|
def get_preview_frames_from_cache(camera_name: str, start_ts: float, end_ts: float):
|
||||||
"""Get list of cached preview frames"""
|
"""Get list of cached preview frames"""
|
||||||
preview_dir = os.path.join(CACHE_DIR, "preview_frames")
|
preview_dir = os.path.join(CACHE_DIR, "preview_frames")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user