From eb838630f54ec5b0f7aaa5f321fd8635c0b14e2d Mon Sep 17 00:00:00 2001 From: Hommy <16620803786@163.com> Date: Thu, 19 Mar 2026 20:03:28 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=8E=A5=E5=8F=A3=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E9=AA=8C=E8=AF=81=E7=9A=84=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/schemas/filter_infos.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/schemas/filter_infos.py b/src/schemas/filter_infos.py index 7808b3c..2fa5781 100644 --- a/src/schemas/filter_infos.py +++ b/src/schemas/filter_infos.py @@ -1,4 +1,4 @@ -from pydantic import BaseModel, Field +from pydantic import BaseModel, Field, field_validator from typing import List, Optional from .audio_timelines import TimelineItem @@ -7,7 +7,15 @@ class FilterInfosRequest(BaseModel): """滤镜信息请求参数""" filters: List[str] = Field(..., description="滤镜名称列表") timelines: List[TimelineItem] = Field(..., description="时间线数组") - intensities: Optional[List[float]] = Field(default=None, ge=0, le=100, description="滤镜强度列表(0-100),可选") + intensities: Optional[List[float]] = Field(default=None, description="滤镜强度列表(0-100),可选") + + @field_validator('intensities', mode='before') + @classmethod + def validate_intensities(cls, v): + """验证并限制 intensities 数组中的每个值在 0-100 范围内""" + if v is None: + return v + return [max(0, min(100, val)) for val in v] class FilterInfosResponse(BaseModel):