feat: 增加桌面端登录、视频清单和封面缓存

This commit is contained in:
Nixevol
2026-09-27 03:57:00 +08:00
parent 0c1e04464a
commit cc930cd1ed
69 changed files with 9895 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
import json
from fastapi import APIRouter, HTTPException
from fastapi.responses import StreamingResponse
from server.schemas import SessionBody, device_payload
from server.services.catalog import catalog
router = APIRouter(prefix="/api")
@router.post("/catalog")
async def load_catalog(body: SessionBody):
token = body.token.strip()
if not token:
raise HTTPException(status_code=400, detail="请先登录")
raw_device = device_payload(body.device)
async def generate():
try:
async for event in catalog.stream(token, raw_device):
yield json.dumps(event, ensure_ascii=False) + "\n"
except Exception as exc:
message = str(exc) or "获取清单失败"
yield json.dumps({"type": "error", "message": message}, ensure_ascii=False) + "\n"
return StreamingResponse(generate(), media_type="application/x-ndjson")