mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-08-14 18:24:42 +08:00
fix: 插件文件夹响应模型兼容新版对象格式
GET /plugin/folders 的响应模型 PluginFoldersData 只能校验旧版 数组格式,前端实际保存的是含展示配置的对象格式,导致建文件夹/ 移入插件后刷新时响应校验失败(500),文件夹恢复为空。改为同时 兼容新旧两种格式。
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from typing import Optional, List, Dict
|
||||
from typing import Optional, List, Dict, Union
|
||||
|
||||
from pydantic import BaseModel, Field, RootModel
|
||||
|
||||
@@ -165,8 +165,27 @@ class PluginReleaseData(BaseModel):
|
||||
items: List[PluginReleaseItem] = Field(default_factory=list)
|
||||
|
||||
|
||||
class PluginFoldersData(RootModel[Dict[str, List[str]]]):
|
||||
"""插件文件夹与插件 ID 列表映射。"""
|
||||
class PluginFolderConfigData(BaseModel):
|
||||
"""新版插件文件夹配置(对象格式,含展示配置与插件列表)。"""
|
||||
|
||||
# 文件夹内插件 ID 列表
|
||||
plugins: List[str] = Field(default_factory=list)
|
||||
# 文件夹排序值
|
||||
order: Optional[int] = None
|
||||
# 文件夹图标
|
||||
icon: Optional[str] = None
|
||||
# 文件夹颜色
|
||||
color: Optional[str] = None
|
||||
# 文件夹渐变
|
||||
gradient: Optional[str] = None
|
||||
# 文件夹背景
|
||||
background: Optional[str] = None
|
||||
# 是否显示图标(前端字段为驼峰命名)
|
||||
show_icon: Optional[bool] = Field(default=None, alias="showIcon")
|
||||
|
||||
|
||||
class PluginFoldersData(RootModel[Dict[str, Union[List[str], PluginFolderConfigData]]]):
|
||||
"""插件文件夹与插件配置映射,兼容旧版数组格式与新版对象格式。"""
|
||||
|
||||
|
||||
class PluginDashboardMetaItem(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user