Revert "fix schemas"

This reverts commit a5e7483870.
This commit is contained in:
jxxghp
2025-11-17 11:48:18 +08:00
parent 043be409d0
commit ed294d3ea4
23 changed files with 124 additions and 124 deletions

View File

@@ -57,7 +57,7 @@ class TorrentInfo:
# HR
hit_and_run: bool = False
# 种子标签
labels: list = field(default_factory=[])
labels: list = field(default_factory=list)
# 种子优先级
pri_order: int = 0
# 种子分类 电影/电视剧
@@ -197,61 +197,61 @@ class MediaInfo:
# 描述
overview: str = None
# 风格ID
genre_ids: list = field(default_factory=[])
genre_ids: list = field(default_factory=list)
# 所有别名和译名
names: list = field(default_factory=[])
names: list = field(default_factory=list)
# 各季的剧集清单信息
seasons: Dict[int, list] = field(default_factory={})
seasons: Dict[int, list] = field(default_factory=dict)
# 各季详情
season_info: List[dict] = field(default_factory=[])
season_info: List[dict] = field(default_factory=list)
# 各季的年份
season_years: dict = field(default_factory={})
season_years: dict = field(default_factory=dict)
# 二级分类
category: str = ""
# TMDB INFO
tmdb_info: dict = field(default_factory={})
tmdb_info: dict = field(default_factory=dict)
# 豆瓣 INFO
douban_info: dict = field(default_factory={})
douban_info: dict = field(default_factory=dict)
# Bangumi INFO
bangumi_info: dict = field(default_factory={})
bangumi_info: dict = field(default_factory=dict)
# 导演
directors: List[dict] = field(default_factory=[])
directors: List[dict] = field(default_factory=list)
# 演员
actors: List[dict] = field(default_factory=[])
actors: List[dict] = field(default_factory=list)
# 是否成人内容
adult: bool = False
# 创建人
created_by: list = field(default_factory=[])
created_by: list = field(default_factory=list)
# 集时长
episode_run_time: list = field(default_factory=[])
episode_run_time: list = field(default_factory=list)
# 风格
genres: List[dict] = field(default_factory=[])
genres: List[dict] = field(default_factory=list)
# 首播日期
first_air_date: str = None
# 首页
homepage: str = None
# 语种
languages: list = field(default_factory=[])
languages: list = field(default_factory=list)
# 最后上映日期
last_air_date: str = None
# 流媒体平台
networks: list = field(default_factory=[])
networks: list = field(default_factory=list)
# 集数
number_of_episodes: int = None
# 季数
number_of_seasons: int = None
# 原产国
origin_country: list = field(default_factory=[])
origin_country: list = field(default_factory=list)
# 原名
original_name: str = None
# 出品公司
production_companies: list = field(default_factory=[])
production_companies: list = field(default_factory=list)
# 出品国
production_countries: list = field(default_factory=[])
production_countries: list = field(default_factory=list)
# 语种
spoken_languages: list = field(default_factory=[])
spoken_languages: list = field(default_factory=list)
# 所有发行日期
release_dates: list = field(default_factory=[])
release_dates: list = field(default_factory=list)
# 状态
status: str = None
# 标签
@@ -263,11 +263,11 @@ class MediaInfo:
# 时长
runtime: int = None
# 下一集
next_episode_to_air: dict = field(default_factory={})
next_episode_to_air: dict = field(default_factory=dict)
# 内容分级
content_rating: str = None
# 全部剧集组
episode_groups: List[dict] = field(default_factory=[])
episode_groups: List[dict] = field(default_factory=list)
# 剧集组
episode_group: str = None

View File

@@ -11,8 +11,8 @@ class ConversationMemory(BaseModel):
session_id: str = Field(description="会话ID")
user_id: Optional[str] = Field(default=None, description="用户ID")
title: Optional[str] = Field(default=None, description="会话标题")
messages: List[Dict[str, Any]] = Field(default_factory=[], description="消息列表")
context: Dict[str, Any] = Field(default_factory={}, description="会话上下文")
messages: List[Dict[str, Any]] = Field(default_factory=list, description="消息列表")
context: Dict[str, Any] = Field(default_factory=dict, description="会话上下文")
created_at: datetime = Field(default_factory=datetime.now, description="创建时间")
updated_at: datetime = Field(default_factory=datetime.now, description="更新时间")

View File

@@ -40,7 +40,7 @@ class MetaInfo(BaseModel):
# SxxExx
season_episode: Optional[str] = None
# 集列表
episode_list: Optional[List[int]] = Field(default_factory=[])
episode_list: Optional[List[int]] = Field(default_factory=list)
# Partx Cd Dvd Disk Disc
part: Optional[str] = None
# 识别的资源类型
@@ -114,58 +114,58 @@ class MediaInfo(BaseModel):
# 二级分类
category: Optional[str] = ""
# 季季集清单
seasons: Optional[Dict[int, list]] = Field(default_factory={})
seasons: Optional[Dict[int, list]] = Field(default_factory=dict)
# 季详情
season_info: Optional[List[dict]] = Field(default_factory=[])
season_info: Optional[List[dict]] = Field(default_factory=list)
# 别名和译名
names: Optional[list] = Field(default_factory=[])
names: Optional[list] = Field(default_factory=list)
# 演员
actors: Optional[list] = Field(default_factory=[])
actors: Optional[list] = Field(default_factory=list)
# 导演
directors: Optional[list] = Field(default_factory=[])
directors: Optional[list] = Field(default_factory=list)
# 详情链接
detail_link: Optional[str] = None
# 其它TMDB属性
# 是否成人内容
adult: Optional[bool] = False
# 创建人
created_by: Optional[list] = Field(default_factory=[])
created_by: Optional[list] = Field(default_factory=list)
# 集时长
episode_run_time: Optional[list] = Field(default_factory=[])
episode_run_time: Optional[list] = Field(default_factory=list)
# 风格
genres: Optional[List[dict]] = Field(default_factory=[])
genres: Optional[List[dict]] = Field(default_factory=list)
# 首播日期
first_air_date: Optional[str] = None
# 首页
homepage: Optional[str] = None
# 语种
languages: Optional[list] = Field(default_factory=[])
languages: Optional[list] = Field(default_factory=list)
# 最后上映日期
last_air_date: Optional[str] = None
# 流媒体平台
networks: Optional[list] = Field(default_factory=[])
networks: Optional[list] = Field(default_factory=list)
# 集数
number_of_episodes: Optional[int] = 0
# 季数
number_of_seasons: Optional[int] = 0
# 原产国
origin_country: Optional[list] = Field(default_factory=[])
origin_country: Optional[list] = Field(default_factory=list)
# 原名
original_name: Optional[str] = None
# 出品公司
production_companies: Optional[list] = Field(default_factory=[])
production_companies: Optional[list] = Field(default_factory=list)
# 出品国
production_countries: Optional[list] = Field(default_factory=[])
production_countries: Optional[list] = Field(default_factory=list)
# 语种
spoken_languages: Optional[list] = Field(default_factory=[])
spoken_languages: Optional[list] = Field(default_factory=list)
# 所有发行日期
release_dates: list = Field(default_factory=[])
release_dates: list = Field(default_factory=list)
# 状态
status: Optional[str] = None
# 标签
tagline: Optional[str] = None
# 风格ID
genre_ids: Optional[list] = Field(default_factory=[])
genre_ids: Optional[list] = Field(default_factory=list)
# 评价数量
vote_count: Optional[int] = 0
# 流行度
@@ -173,9 +173,9 @@ class MediaInfo(BaseModel):
# 时长
runtime: Optional[int] = None
# 下一集
next_episode_to_air: Optional[dict] = Field(default_factory={})
next_episode_to_air: Optional[dict] = Field(default_factory=dict)
# 全部剧集组
episode_groups: Optional[list] = Field(default_factory=[])
episode_groups: Optional[list] = Field(default_factory=list)
# 剧集组
episode_group: Optional[str] = None
@@ -229,7 +229,7 @@ class TorrentInfo(BaseModel):
# HR
hit_and_run: Optional[bool] = False
# 种子标签
labels: Optional[list] = Field(default_factory=[])
labels: Optional[list] = Field(default_factory=list)
# 种子优先级
pri_order: Optional[int] = 0
# 促销
@@ -274,13 +274,13 @@ class MediaPerson(BaseModel):
type: Optional[Union[str, int]] = 1
name: Optional[str] = None
character: Optional[str] = None
images: Optional[dict] = Field(default_factory={})
images: Optional[dict] = Field(default_factory=dict)
# themoviedb
profile_path: Optional[str] = None
gender: Optional[Union[str, int]] = None
original_name: Optional[str] = None
credit_id: Optional[str] = None
also_known_as: Optional[list] = Field(default_factory=[])
also_known_as: Optional[list] = Field(default_factory=list)
birthday: Optional[str] = None
deathday: Optional[str] = None
imdb_id: Optional[str] = None
@@ -289,11 +289,11 @@ class MediaPerson(BaseModel):
popularity: Optional[float] = None
biography: Optional[str] = None
# douban
roles: Optional[list] = Field(default_factory=[])
roles: Optional[list] = Field(default_factory=list)
title: Optional[str] = None
url: Optional[str] = None
avatar: Optional[Union[str, dict]] = None
latin_name: Optional[str] = None
# bangumi
career: Optional[list] = Field(default_factory=[])
career: Optional[list] = Field(default_factory=list)
relation: Optional[str] = None

View File

@@ -12,7 +12,7 @@ class Event(BaseModel):
事件模型
"""
event_type: str = Field(..., description="事件类型")
event_data: Optional[dict] = Field(default_factory={}, description="事件数据")
event_data: Optional[dict] = Field(default={}, description="事件数据")
priority: Optional[int] = Field(0, description="事件优先级")
@@ -60,7 +60,7 @@ class AuthCredentials(ChainEventData):
mfa_code: Optional[str] = Field(None, description="一次性密码,目前仅适用于 'password' 认证类型")
code: Optional[str] = Field(None, description="授权码,适用于 'authorization_code' 认证类型")
grant_type: str = Field(..., description="认证类型,如 'password', 'authorization_code', 'client_credentials'")
# scope: List[str] = Field(default_factory=[], description="权限范围,如 ['read', 'write']")
# scope: List[str] = Field(default_factory=list, description="权限范围,如 ['read', 'write']")
# 输出参数
# grant_type 为 authorization_code 时,输出参数包括 username、token、channel、service
@@ -216,7 +216,7 @@ class ResourceDownloadEventData(ChainEventData):
channel: Optional[MessageChannel] = Field(None, description="通知渠道")
origin: Optional[str] = Field(None, description="来源")
downloader: Optional[str] = Field(None, description="下载器")
options: Optional[dict] = Field(default_factory={}, description="其他参数")
options: Optional[dict] = Field(default={}, description="其他参数")
# 输出参数
cancel: bool = Field(default=False, description="是否取消下载")
@@ -263,7 +263,7 @@ class DiscoverMediaSource(BaseModel):
mediaid_prefix: str = Field(..., description="媒体ID的前缀不含:")
api_path: str = Field(..., description="媒体数据源API地址")
filter_params: Optional[Dict[str, Any]] = Field(default=None, description="过滤参数")
filter_ui: Optional[List[dict]] = Field(default_factory=[], description="过滤参数UI配置")
filter_ui: Optional[List[dict]] = Field(default=[], description="过滤参数UI配置")
depends: Optional[Dict[str, list]] = Field(default=None, description="UI依赖关系字典")
@@ -276,7 +276,7 @@ class DiscoverSourceEventData(ChainEventData):
extra_sources (List[DiscoverMediaSource]): 额外媒体数据源
"""
# 输出参数
extra_sources: List[DiscoverMediaSource] = Field(default_factory=[], description="额外媒体数据源")
extra_sources: List[DiscoverMediaSource] = Field(default_factory=list, description="额外媒体数据源")
class RecommendMediaSource(BaseModel):
@@ -297,7 +297,7 @@ class RecommendSourceEventData(ChainEventData):
extra_sources (List[RecommendMediaSource]): 额外媒体数据源
"""
# 输出参数
extra_sources: List[RecommendMediaSource] = Field(default_factory=[], description="额外媒体数据源")
extra_sources: List[RecommendMediaSource] = Field(default_factory=list, description="额外媒体数据源")
class MediaRecognizeConvertEventData(ChainEventData):
@@ -317,7 +317,7 @@ class MediaRecognizeConvertEventData(ChainEventData):
convert_type: str = Field(..., description="转换类型themoviedb/douban")
# 输出参数
media_dict: dict = Field(default_factory={}, description="转换后的媒体信息TheMovieDb/豆瓣)")
media_dict: dict = Field(default_factory=dict, description="转换后的媒体信息TheMovieDb/豆瓣)")
class StorageOperSelectionEventData(ChainEventData):

View File

@@ -21,7 +21,7 @@ class FileItem(BaseModel):
# 修改时间
modify_time: Optional[float] = None
# 子节点
children: Optional[list] = Field(default_factory=[])
children: Optional[list] = Field(default_factory=list)
# ID
fileid: Optional[str] = None
# 父ID
@@ -45,4 +45,4 @@ class StorageUsage(BaseModel):
class StorageTransType(BaseModel):
# 传输类型
transtype: Optional[dict] = Field(default_factory={})
transtype: Optional[dict] = Field(default_factory=dict)

View File

@@ -13,7 +13,7 @@ class ExistMediaInfo(BaseModel):
# 类型 电影、电视剧
type: Optional[MediaType] = None
# 季
seasons: Optional[Dict[int, list]] = Field(default_factory={})
seasons: Optional[Dict[int, list]] = Field(default_factory=dict)
# 媒体服务器类型plex、jellyfin、emby、trimemedia
server_type: Optional[str] = None
# 媒体服务器名称
@@ -29,7 +29,7 @@ class NotExistMediaInfo(BaseModel):
# 季
season: Optional[int] = None
# 剧集列表
episodes: Optional[list] = Field(default_factory=[])
episodes: Optional[list] = Field(default_factory=list)
# 总集数
total_episode: Optional[int] = 0
# 开始集
@@ -135,7 +135,7 @@ class MediaServerSeasonInfo(BaseModel):
媒体服务器媒体剧集信息
"""
season: Optional[int] = None
episodes: Optional[List[int]] = Field(default_factory=[])
episodes: Optional[List[int]] = Field(default_factory=list)
class WebhookEventInfo(BaseModel):
@@ -163,7 +163,7 @@ class WebhookEventInfo(BaseModel):
save_reason: Optional[str] = None
item_isvirtual: Optional[bool] = None
media_type: Optional[str] = None
json_object: Optional[dict] = Field(default_factory={})
json_object: Optional[dict] = Field(default_factory=dict)
class MediaServerPlayItem(BaseModel):
@@ -177,7 +177,7 @@ class MediaServerPlayItem(BaseModel):
image: Optional[str] = None
link: Optional[str] = None
percent: Optional[float] = None
BackdropImageTags: Optional[list] = Field(default_factory=[])
BackdropImageTags: Optional[list] = Field(default_factory=list)
server_type: Optional[str] = None
# 飞牛的图片需要Cookies
use_cookies: Optional[bool] = None

View File

@@ -121,7 +121,7 @@ class Subscription(BaseModel):
客户端消息订阅
"""
endpoint: Optional[str] = None
keys: Optional[dict] = Field(default_factory={})
keys: Optional[dict] = Field(default_factory=dict)
class SubscriptionMessage(BaseModel):
@@ -132,7 +132,7 @@ class SubscriptionMessage(BaseModel):
body: Optional[str] = None
icon: Optional[str] = None
url: Optional[str] = None
data: Optional[dict] = Field(default_factory={})
data: Optional[dict] = Field(default_factory=dict)
class ChannelCapability(Enum):

View File

@@ -43,7 +43,7 @@ class Plugin(BaseModel):
# 安装次数
install_count: Optional[int] = 0
# 更新记录
history: Optional[dict] = Field(default_factory={})
history: Optional[dict] = Field(default_factory=dict)
# 添加时间,值越小表示越靠后发布
add_time: Optional[int] = 0
# 插件公钥
@@ -62,11 +62,11 @@ class PluginDashboard(Plugin):
# 演染模式
render_mode: Optional[str] = Field(default="vuetify")
# 全局配置
attrs: Optional[dict] = Field(default_factory={})
attrs: Optional[dict] = Field(default_factory=dict)
# col列数
cols: Optional[dict] = Field(default_factory={})
cols: Optional[dict] = Field(default_factory=dict)
# 页面元素
elements: Optional[List[dict]] = Field(default_factory=[])
elements: Optional[List[dict]] = Field(default_factory=list)
class PluginMemoryInfo(BaseModel):

View File

@@ -9,4 +9,4 @@ class Response(BaseModel):
# 消息文本
message: Optional[str] = None
# 数据
data: Optional[Union[dict, list]] = Field(default_factory={})
data: Optional[Union[dict, list]] = Field(default_factory=dict)

View File

@@ -28,9 +28,9 @@ class SonarrSeries(BaseModel):
overview: Optional[str] = None
network: Optional[str] = None
airTime: Optional[str] = None
images: list = Field(default_factory=[])
images: list = Field(default_factory=list)
remotePoster: Optional[str] = None
seasons: list = Field(default_factory=[])
seasons: list = Field(default_factory=list)
year: Optional[str] = None
path: Optional[str] = None
profileId: Optional[int] = None
@@ -49,11 +49,11 @@ class SonarrSeries(BaseModel):
cleanTitle: Optional[str] = None
titleSlug: Optional[str] = None
certification: Optional[str] = None
genres: list = Field(default_factory=[])
tags: list = Field(default_factory=[])
genres: list = Field(default_factory=list)
tags: list = Field(default_factory=list)
added: Optional[str] = None
ratings: Optional[dict] = None
qualityProfileId: Optional[int] = None
statistics: dict = Field(default_factory={})
statistics: dict = Field(default_factory=dict)
isAvailable: Optional[bool] = False
hasFile: Optional[bool] = False

View File

@@ -97,11 +97,11 @@ class SiteUserData(BaseModel):
# 下载体积
leeching_size: Optional[int] = 0
# 做种人数, 种子大小
seeding_info: Optional[list] = Field(default_factory=[])
seeding_info: Optional[list] = Field(default_factory=list)
# 未读消息
message_unread: Optional[int] = 0
# 未读消息内容
message_unread_contents: Optional[list] = Field(default_factory=[])
message_unread_contents: Optional[list] = Field(default_factory=list)
# 错误信息
err_msg: Optional[str] = None
# 更新日期
@@ -112,7 +112,7 @@ class SiteUserData(BaseModel):
class SiteAuth(BaseModel):
site: Optional[str] = None
params: Optional[Dict[str, Union[int, str]]] = Field(default_factory={})
params: Optional[Dict[str, Union[int, str]]] = Field(default_factory=dict)
class SiteCategory(BaseModel):

View File

@@ -54,7 +54,7 @@ class Subscribe(BaseModel):
# 订阅用户
username: Optional[str] = None
# 订阅站点
sites: Optional[List[int]] = Field(default_factory=[])
sites: Optional[List[int]] = Field(default_factory=list)
# 下载器
downloader: Optional[str] = None
# 是否洗版
@@ -72,7 +72,7 @@ class Subscribe(BaseModel):
# 自定义媒体类别
media_category: Optional[str] = None
# 过滤规则组
filter_groups: Optional[List[str]] = Field(default_factory=[])
filter_groups: Optional[List[str]] = Field(default_factory=list)
# 剧集组
episode_group: Optional[str] = None
@@ -174,13 +174,13 @@ class SubscribeEpisodeInfo(BaseModel):
# 背景图
backdrop: Optional[str] = None
# 下载文件信息
download: Optional[List[SubscribeDownloadFileInfo]] = Field(default_factory=[])
download: Optional[List[SubscribeDownloadFileInfo]] = Field(default_factory=list)
# 媒体库文件信息
library: Optional[List[SubscribeLibraryFileInfo]] = Field(default_factory=[])
library: Optional[List[SubscribeLibraryFileInfo]] = Field(default_factory=list)
class SubscrbieInfo(BaseModel):
# 订阅信息
subscribe: Optional[Subscribe] = None
# 集信息 {集号: {download: 文件路径library: 文件路径, backdrop: url, title: 标题, description: 描述}}
episodes: Optional[Dict[int, SubscribeEpisodeInfo]] = Field(default_factory={})
episodes: Optional[Dict[int, SubscribeEpisodeInfo]] = Field(default_factory=dict)

View File

@@ -30,11 +30,11 @@ class MediaServerConf(BaseModel):
# 类型 emby/jellyfin/plex
type: Optional[str] = None
# 配置
config: Optional[dict] = Field(default_factory={})
config: Optional[dict] = Field(default_factory=dict)
# 是否启用
enabled: Optional[bool] = False
# 同步媒体体库列表
sync_libraries: Optional[list] = Field(default_factory=[])
sync_libraries: Optional[list] = Field(default_factory=list)
class DownloaderConf(BaseModel):
@@ -48,7 +48,7 @@ class DownloaderConf(BaseModel):
# 是否默认
default: Optional[bool] = False
# 配置
config: Optional[dict] = Field(default_factory={})
config: Optional[dict] = Field(default_factory=dict)
# 是否启用
enabled: Optional[bool] = False
@@ -62,9 +62,9 @@ class NotificationConf(BaseModel):
# 类型 telegram/wechat/vocechat/synologychat/slack/webpush
type: Optional[str] = None
# 配置
config: Optional[dict] = Field(default_factory={})
config: Optional[dict] = Field(default_factory=dict)
# 场景开关
switchs: Optional[list] = Field(default_factory=[])
switchs: Optional[list] = Field(default_factory=list)
# 是否启用
enabled: Optional[bool] = False
@@ -88,7 +88,7 @@ class StorageConf(BaseModel):
# 名称
name: Optional[str] = None
# 配置
config: Optional[dict] = Field(default_factory={})
config: Optional[dict] = Field(default_factory=dict)
class TransferDirectoryConf(BaseModel):

View File

@@ -29,5 +29,5 @@ class TmdbEpisode(BaseModel):
season_number: Optional[int] = None
still_path: Optional[str] = None
vote_average: Optional[float] = None
crew: Optional[list] = Field(default_factory=[])
guest_stars: Optional[list] = Field(default_factory=[])
crew: Optional[list] = Field(default_factory=list)
guest_stars: Optional[list] = Field(default_factory=list)

View File

@@ -19,7 +19,7 @@ class Token(BaseModel):
# 权限级别
level: int = 1
# 详细权限
permissions: Optional[dict] = Field(default_factory={})
permissions: Optional[dict] = Field(default_factory=dict)
# 是否显示配置向导
widzard: Optional[bool] = None

View File

@@ -40,7 +40,7 @@ class DownloadingTorrent(BaseModel):
state: Optional[str] = 'downloading'
upspeed: Optional[str] = None
dlspeed: Optional[str] = None
media: Optional[dict] = Field(default_factory={})
media: Optional[dict] = Field(default_factory=dict)
userid: Optional[str] = None
username: Optional[str] = None
left_time: Optional[str] = None
@@ -97,7 +97,7 @@ class TransferJob(BaseModel):
"""
media: Optional[MediaInfo] = None
season: Optional[int] = None
tasks: Optional[List[TransferJobTask]] = Field(default_factory=[])
tasks: Optional[List[TransferJobTask]] = Field(default_factory=list)
class TransferInfo(BaseModel):
@@ -117,21 +117,21 @@ class TransferInfo(BaseModel):
# 处理文件数
file_count: Optional[int] = Field(default=0)
# 处理文件清单
file_list: Optional[list] = Field(default_factory=[])
file_list: Optional[list] = Field(default_factory=list)
# 目标文件清单
file_list_new: Optional[list] = Field(default_factory=[])
file_list_new: Optional[list] = Field(default_factory=list)
# 总文件大小
total_size: Optional[int] = Field(default=0)
# 失败清单
fail_list: Optional[list] = Field(default_factory=[])
fail_list: Optional[list] = Field(default_factory=list)
# 处理字幕文件清单
subtitle_list: Optional[list] = Field(default_factory=[])
subtitle_list: Optional[list] = Field(default_factory=list)
# 目标字幕文件清单
subtitle_list_new: Optional[list] = Field(default_factory=[])
subtitle_list_new: Optional[list] = Field(default_factory=list)
# 处理音频文件清单
audio_list: Optional[list] = Field(default_factory=[])
audio_list: Optional[list] = Field(default_factory=list)
# 目标音频文件清单
audio_list_new: Optional[list] = Field(default_factory=[])
audio_list_new: Optional[list] = Field(default_factory=list)
# 错误信息
message: Optional[str] = None
# 是否需要刮削

View File

@@ -18,9 +18,9 @@ class UserBase(BaseModel):
# 是否开启二次验证
is_otp: Optional[bool] = False
# 权限
permissions: Optional[dict] = Field(default_factory={})
permissions: Optional[dict] = Field(default_factory=dict)
# 个性化设置
settings: Optional[dict] = Field(default_factory={})
settings: Optional[dict] = Field(default_factory=dict)
model_config = ConfigDict(from_attributes=True)
@@ -30,8 +30,8 @@ class UserCreate(UserBase):
name: str
email: Optional[str] = None
password: Optional[str] = None
settings: Optional[dict] = Field(default_factory={})
permissions: Optional[dict] = Field(default_factory={})
settings: Optional[dict] = Field(default_factory=dict)
permissions: Optional[dict] = Field(default_factory=dict)
# Properties to receive via API on update
@@ -40,8 +40,8 @@ class UserUpdate(UserBase):
name: str
email: Optional[str] = None
password: Optional[str] = None
settings: Optional[dict] = Field(default_factory={})
permissions: Optional[dict] = Field(default_factory={})
settings: Optional[dict] = Field(default_factory=dict)
permissions: Optional[dict] = Field(default_factory=dict)
class UserInDBBase(UserBase):

View File

@@ -19,13 +19,13 @@ class Workflow(BaseModel):
timer: Optional[str] = Field(default=None, description="定时器")
trigger_type: Optional[str] = Field(default='timer', description="触发类型timer-定时触发 event-事件触发 manual-手动触发")
event_type: Optional[str] = Field(default=None, description="事件类型当trigger_type为event时使用")
event_conditions: Optional[dict] = Field(default_factory={}, description="事件条件JSON格式用于过滤事件")
event_conditions: Optional[dict] = Field(default={}, description="事件条件JSON格式用于过滤事件")
state: Optional[str] = Field(default=None, description="状态")
current_action: Optional[str] = Field(default=None, description="已执行动作")
result: Optional[str] = Field(default=None, description="任务执行结果")
run_count: Optional[int] = Field(default=0, description="已执行次数")
actions: Optional[list] = Field(default_factory=[], description="任务列表")
flows: Optional[list] = Field(default_factory=[], description="任务流")
actions: Optional[list] = Field(default=[], description="任务列表")
flows: Optional[list] = Field(default=[], description="任务流")
add_time: Optional[str] = Field(default=None, description="创建时间")
last_time: Optional[str] = Field(default=None, description="最后执行时间")
@@ -48,8 +48,8 @@ class Action(BaseModel):
type: Optional[str] = Field(default=None, description="动作类型 (类名)")
name: Optional[str] = Field(default=None, description="动作名称")
description: Optional[str] = Field(default=None, description="动作描述")
position: Optional[dict] = Field(default_factory={}, description="位置")
data: Optional[dict] = Field(default_factory={}, description="参数")
position: Optional[dict] = Field(default={}, description="位置")
data: Optional[dict] = Field(default={}, description="参数")
class ActionExecution(BaseModel):
@@ -66,13 +66,13 @@ class ActionContext(BaseModel):
动作基础上下文,各动作通用数据
"""
content: Optional[str] = Field(default=None, description="文本类内容")
torrents: Optional[List[Context]] = Field(default_factory=[], description="资源列表")
medias: Optional[List[MediaInfo]] = Field(default_factory=[], description="媒体列表")
fileitems: Optional[List[FileItem]] = Field(default_factory=[], description="文件列表")
downloads: Optional[List[DownloadTask]] = Field(default_factory=[], description="下载任务列表")
sites: Optional[List[Site]] = Field(default_factory=[], description="站点列表")
subscribes: Optional[List[Subscribe]] = Field(default_factory=[], description="订阅列表")
execute_history: Optional[List[ActionExecution]] = Field(default_factory=[], description="执行历史")
torrents: Optional[List[Context]] = Field(default=[], description="资源列表")
medias: Optional[List[MediaInfo]] = Field(default=[], description="媒体列表")
fileitems: Optional[List[FileItem]] = Field(default=[], description="文件列表")
downloads: Optional[List[DownloadTask]] = Field(default=[], description="下载任务列表")
sites: Optional[List[Site]] = Field(default=[], description="站点列表")
subscribes: Optional[List[Subscribe]] = Field(default=[], description="订阅列表")
execute_history: Optional[List[ActionExecution]] = Field(default=[], description="执行历史")
progress: Optional[int] = Field(default=0, description="执行进度(%")

View File

@@ -18,7 +18,7 @@ class FetchMediasParams(ActionParams):
获取媒体数据参数
"""
source_type: Optional[str] = Field(default="ranking", description="来源")
sources: Optional[List[str]] = Field(default_factory=[], description="榜单")
sources: Optional[List[str]] = Field(default=[], description="榜单")
api_path: Optional[str] = Field(default=None, description="API路径")

View File

@@ -20,7 +20,7 @@ class FetchTorrentsParams(ActionParams):
year: Optional[str] = Field(default=None, description="年份")
type: Optional[str] = Field(default=None, description="资源类型 (电影/电视剧)")
season: Optional[int] = Field(default=None, description="季度")
sites: Optional[List[int]] = Field(default_factory=[], description="站点列表")
sites: Optional[List[int]] = Field(default=[], description="站点列表")
match_media: Optional[bool] = Field(default=False, description="匹配媒体信息")

View File

@@ -13,7 +13,7 @@ class FilterTorrentsParams(ActionParams):
"""
过滤资源数据参数
"""
rule_groups: Optional[List[str]] = Field(default_factory=[], description="规则组")
rule_groups: Optional[List[str]] = Field(default=[], description="规则组")
quality: Optional[str] = Field(default=None, description="资源质量")
resolution: Optional[str] = Field(default=None, description="资源分辨率")
effect: Optional[str] = Field(default=None, description="特效")

View File

@@ -12,7 +12,7 @@ class InvokePluginParams(ActionParams):
"""
plugin_id: str = Field(default=None, description="插件ID")
action_id: str = Field(default=None, description="动作ID")
action_params: dict = Field(default_factory={}, description="动作参数")
action_params: dict = Field(default={}, description="动作参数")
class InvokePluginAction(BaseAction):

View File

@@ -11,7 +11,7 @@ class SendMessageParams(ActionParams):
"""
发送消息参数
"""
client: Optional[List[str]] = Field(default_factory=[], description="消息渠道")
client: Optional[List[str]] = Field(default=[], description="消息渠道")
userid: Optional[Union[str, int]] = Field(default=None, description="用户ID")