54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
from __future__ import annotations
|
|
|
|
import json
|
|
|
|
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from app.dependencies import get_admin_user, get_db
|
|
from app.models.user import User
|
|
from app.schemas.video_upscale import VideoUpscaleConfigOut, VideoUpscaleConfigSaveRequest
|
|
from app.services.operation_log import log_operation
|
|
from app.services.video_upscale.config_service import get_video_upscale_config, save_video_upscale_config
|
|
|
|
router = APIRouter(prefix="/admin/video-upscale", tags=["admin-video-upscale"])
|
|
|
|
|
|
@router.get("/config", response_model=VideoUpscaleConfigOut, summary="获取视频超分配置")
|
|
async def get_config(
|
|
admin: User = Depends(get_admin_user),
|
|
db: AsyncSession = Depends(get_db),
|
|
):
|
|
_ = admin
|
|
return await get_video_upscale_config(db)
|
|
|
|
|
|
@router.put("/config", response_model=VideoUpscaleConfigOut, summary="保存视频超分配置")
|
|
async def save_config(
|
|
req: VideoUpscaleConfigSaveRequest,
|
|
admin: User = Depends(get_admin_user),
|
|
db: AsyncSession = Depends(get_db),
|
|
):
|
|
before = await get_video_upscale_config(db)
|
|
result = await save_video_upscale_config(db, req.data)
|
|
await log_operation(
|
|
db,
|
|
admin.id,
|
|
admin.username,
|
|
"保存视频超分配置",
|
|
"PUT",
|
|
"/admin/video-upscale/config",
|
|
detail=json.dumps(
|
|
{
|
|
"before_version": before["data"].get("version"),
|
|
"after_version": result["data"].get("version"),
|
|
"enabled": result["data"].get("enabled"),
|
|
"delete_source_after_success": result["data"].get("delete_source_after_success"),
|
|
"rule_count": len(result["data"].get("rules") or []),
|
|
},
|
|
ensure_ascii=False,
|
|
),
|
|
)
|
|
await db.commit()
|
|
return result
|