release: 2901262102

This commit is contained in:
2026-01-29 21:03:32 +13:00
parent 914f478178
commit 06e0797722
6 changed files with 317 additions and 2 deletions

View File

@@ -1,13 +1,16 @@
from typing import Any, Dict, List, Optional
from datetime import datetime, timedelta, timezone
import os
from fastapi import APIRouter, HTTPException, Depends, UploadFile, File
from ..auth import require_admin
from ..auth import require_admin, get_current_user
from ..config import settings as env_settings
from ..db import (
delete_setting,
get_all_users,
get_cached_requests,
get_cached_requests_count,
get_request_cache_overview,
get_request_cache_missing_titles,
get_request_cache_stats,
@@ -480,6 +483,40 @@ async def requests_cache(limit: int = 50) -> Dict[str, Any]:
return {"rows": rows}
@router.get("/requests/all")
async def requests_all(
take: int = 50,
skip: int = 0,
days: Optional[int] = None,
user: Dict[str, str] = Depends(get_current_user),
) -> Dict[str, Any]:
if user.get("role") != "admin":
raise HTTPException(status_code=403, detail="Forbidden")
take = max(1, min(int(take or 50), 200))
skip = max(0, int(skip or 0))
since_iso = None
if days is not None and int(days) > 0:
since_iso = (datetime.now(timezone.utc) - timedelta(days=int(days))).isoformat()
rows = get_cached_requests(limit=take, offset=skip, since_iso=since_iso)
total = get_cached_requests_count(since_iso=since_iso)
results = []
for row in rows:
status = row.get("status")
results.append(
{
"id": row.get("request_id"),
"title": row.get("title"),
"year": row.get("year"),
"type": row.get("media_type"),
"status": status,
"statusLabel": requests_router._status_label(status),
"requestedBy": row.get("requested_by"),
"createdAt": row.get("created_at"),
}
)
return {"results": results, "total": total, "take": take, "skip": skip}
@router.post("/branding/logo")
async def upload_branding_logo(file: UploadFile = File(...)) -> Dict[str, Any]:
return await save_branding_image(file)