mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-11-01 12:56:34 +08:00
严格检查全部宿主源码,清零类型错误预算并移除按模块类型豁免。 按原因、所属方法、错误码及语法指纹锁定必要兼容例外和站点类型桩, CI 阻断新增忽略、检查范围退化、本地桩替代真实接口及新的类型错误。 修复空值、异步和供应方类型边界,保持插件与 API 兼容合同, 并补充存储、订阅、通知、Agent 和工作流边界的回归覆盖。
107 lines
2.6 KiB
Python
107 lines
2.6 KiB
Python
"""
|
||
API 端点共享的小型业务数据模型。
|
||
"""
|
||
|
||
from typing import Any, Dict, Optional
|
||
from typing import Union as Union
|
||
|
||
from pydantic import BaseModel, Field, RootModel
|
||
from typing_extensions import TypeAliasType as TypeAliasType
|
||
|
||
# 这些类型构造器曾由 app.schemas 根入口导出,保留兼容导出。
|
||
|
||
type JsonData = (
|
||
dict[str, JsonData] | list[JsonData] | str | int | float | bool | None
|
||
)
|
||
"""
|
||
可递归序列化的 JSON 数据;OpenAPI 会展示每一种合法 JSON 结构。
|
||
"""
|
||
class JsonObject(RootModel[dict[str, JsonData]]):
|
||
"""
|
||
字段由运行时扩展点决定的 JSON 对象。
|
||
"""
|
||
|
||
|
||
class JsonObjectList(RootModel[list[JsonObject]]):
|
||
"""
|
||
字段由运行时扩展点决定的 JSON 对象列表。
|
||
"""
|
||
|
||
|
||
class IdData(BaseModel):
|
||
"""
|
||
创建资源后返回的资源 ID。
|
||
"""
|
||
|
||
id: Optional[int | str] = Field(default=None, description="资源 ID")
|
||
|
||
|
||
class ValueData(BaseModel):
|
||
"""
|
||
单个动态配置值。
|
||
"""
|
||
|
||
value: JsonData = Field(default=None, description="配置值")
|
||
|
||
|
||
class FileNameData(BaseModel):
|
||
"""
|
||
文件操作结果中的文件名。
|
||
"""
|
||
|
||
filename: Optional[str] = Field(default=None, description="文件名")
|
||
|
||
|
||
class NameData(BaseModel):
|
||
"""
|
||
名称计算结果。
|
||
"""
|
||
|
||
name: Optional[str] = Field(default=None, description="名称")
|
||
|
||
|
||
class ServiceClientInfo(BaseModel):
|
||
"""
|
||
可选择的下载器或媒体服务器摘要。
|
||
"""
|
||
|
||
name: Optional[str] = Field(default=None, description="实例名称")
|
||
type: Optional[str] = Field(default=None, description="服务类型")
|
||
|
||
|
||
class ProgressKeyData(BaseModel):
|
||
"""
|
||
异步任务进度查询标识。
|
||
"""
|
||
|
||
progress_key: str = Field(description="进度查询标识")
|
||
|
||
|
||
class BatchProgressKeyData(ProgressKeyData):
|
||
"""
|
||
批量异步任务进度查询标识。
|
||
"""
|
||
|
||
history_ids: list[int] = Field(default_factory=list, description="历史记录 ID 列表")
|
||
|
||
|
||
class TimeData(BaseModel):
|
||
"""
|
||
网络请求耗时。
|
||
"""
|
||
|
||
time: int | float = Field(description="耗时毫秒数")
|
||
|
||
|
||
class ManageRequest(BaseModel):
|
||
"""
|
||
通用管理请求:目标标识 + 管理动作 + 透传参数。
|
||
|
||
用于通知渠道、网盘存储等统一管理能力入口,
|
||
动作与参数的具体语义由目标模块自行解释
|
||
"""
|
||
|
||
target: str = Field(description="管理目标标识,如渠道名或存储类型")
|
||
action: str = Field(description="管理动作标识")
|
||
params: Dict[str, Any] = Field(default_factory=dict, description="表单与动作参数,透传给目标模块")
|