Add safe draft and published Overview editor

This commit is contained in:
Sleeps
2026-10-09 13:17:19 +01:00
parent 36b2d4844d
commit f7bd82a663
+21 -1
View File
@@ -15,7 +15,7 @@ from .database import connect, init_db
from .frame_source import FrameSource
from .index_jobs import IndexJobManager
from .overview_jobs import OverviewJobManager
from .overviews import overview_inventory
from .overviews import overview_inventory, edit_overview
from .search_service import SearchService
WEB_INDEX_PATH = Path(__file__).parent / "web" / "index.html"
@@ -51,6 +51,11 @@ class CaptionRequest(BaseModel):
folder_path: str | None = None
class OverviewEditRequest(BaseModel):
expected_overview: str
overview: str = Field(min_length=1, max_length=12000)
class OverviewRequest(BaseModel):
action: str
media_id: str | None = None
@@ -391,6 +396,21 @@ def overview_items(
raise HTTPException(status_code=400, detail=str(exc)) from exc
@app.patch("/api/overviews/{media_id}", dependencies=[Depends(require_api_key)])
def overview_edit(media_id: str, request: OverviewEditRequest) -> dict:
if get_overview_jobs().running or get_index_jobs().running:
raise HTTPException(status_code=409, detail="Wait until Overview/indexing jobs finish")
try:
return edit_overview(
db_path=settings.db_path, media_id=media_id,
expected_overview=request.expected_overview, overview=request.overview,
)
except ValueError as exc:
raise HTTPException(status_code=400, detail=str(exc)) from exc
except RuntimeError as exc:
raise HTTPException(status_code=409, detail=str(exc)) from exc
@app.get("/api/overviews/status", dependencies=[Depends(require_api_key)])
def overview_status() -> dict:
return get_overview_jobs().status()