diff --git a/app/core/context.py b/app/core/context.py index 683da009..b2a62711 100644 --- a/app/core/context.py +++ b/app/core/context.py @@ -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 diff --git a/app/schemas/agent.py b/app/schemas/agent.py index 8621596d..38d34e63 100644 --- a/app/schemas/agent.py +++ b/app/schemas/agent.py @@ -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="更新时间") diff --git a/app/schemas/context.py b/app/schemas/context.py index d1fcb61a..cf8516a1 100644 --- a/app/schemas/context.py +++ b/app/schemas/context.py @@ -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 diff --git a/app/schemas/event.py b/app/schemas/event.py index bc7a2e9e..8c2fecab 100644 --- a/app/schemas/event.py +++ b/app/schemas/event.py @@ -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): diff --git a/app/schemas/file.py b/app/schemas/file.py index 80ee8a52..d6095e10 100644 --- a/app/schemas/file.py +++ b/app/schemas/file.py @@ -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) diff --git a/app/schemas/mediaserver.py b/app/schemas/mediaserver.py index 39bd8a67..10d15710 100644 --- a/app/schemas/mediaserver.py +++ b/app/schemas/mediaserver.py @@ -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 diff --git a/app/schemas/message.py b/app/schemas/message.py index 4383033f..f3a66aec 100644 --- a/app/schemas/message.py +++ b/app/schemas/message.py @@ -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): diff --git a/app/schemas/plugin.py b/app/schemas/plugin.py index d8c43ce5..f0ca7bdf 100644 --- a/app/schemas/plugin.py +++ b/app/schemas/plugin.py @@ -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): diff --git a/app/schemas/response.py b/app/schemas/response.py index 07687267..8e71d67e 100644 --- a/app/schemas/response.py +++ b/app/schemas/response.py @@ -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) diff --git a/app/schemas/servarr.py b/app/schemas/servarr.py index d5f9d706..0fd0170e 100644 --- a/app/schemas/servarr.py +++ b/app/schemas/servarr.py @@ -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 diff --git a/app/schemas/site.py b/app/schemas/site.py index 9ce8ff64..4478eb65 100644 --- a/app/schemas/site.py +++ b/app/schemas/site.py @@ -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): diff --git a/app/schemas/subscribe.py b/app/schemas/subscribe.py index ce92ed76..35c5a39c 100644 --- a/app/schemas/subscribe.py +++ b/app/schemas/subscribe.py @@ -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) diff --git a/app/schemas/system.py b/app/schemas/system.py index 174cadd2..0e943b8c 100644 --- a/app/schemas/system.py +++ b/app/schemas/system.py @@ -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): diff --git a/app/schemas/tmdb.py b/app/schemas/tmdb.py index 7ec33e2d..0da9d6f9 100644 --- a/app/schemas/tmdb.py +++ b/app/schemas/tmdb.py @@ -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) diff --git a/app/schemas/token.py b/app/schemas/token.py index b386f45c..5493f880 100644 --- a/app/schemas/token.py +++ b/app/schemas/token.py @@ -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 diff --git a/app/schemas/transfer.py b/app/schemas/transfer.py index 25523eb1..b12f16c7 100644 --- a/app/schemas/transfer.py +++ b/app/schemas/transfer.py @@ -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 # 是否需要刮削 diff --git a/app/schemas/user.py b/app/schemas/user.py index 4700351d..8125cb14 100644 --- a/app/schemas/user.py +++ b/app/schemas/user.py @@ -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): diff --git a/app/schemas/workflow.py b/app/schemas/workflow.py index ab7c648c..52f7401b 100644 --- a/app/schemas/workflow.py +++ b/app/schemas/workflow.py @@ -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="执行进度(%)") diff --git a/app/workflow/actions/fetch_medias.py b/app/workflow/actions/fetch_medias.py index 6c8db22f..ff6cc1f4 100644 --- a/app/workflow/actions/fetch_medias.py +++ b/app/workflow/actions/fetch_medias.py @@ -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路径") diff --git a/app/workflow/actions/fetch_torrents.py b/app/workflow/actions/fetch_torrents.py index 31ceecb5..e4d0806a 100644 --- a/app/workflow/actions/fetch_torrents.py +++ b/app/workflow/actions/fetch_torrents.py @@ -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="匹配媒体信息") diff --git a/app/workflow/actions/filter_torrents.py b/app/workflow/actions/filter_torrents.py index f1d7963a..23eed7e4 100644 --- a/app/workflow/actions/filter_torrents.py +++ b/app/workflow/actions/filter_torrents.py @@ -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="特效") diff --git a/app/workflow/actions/invoke_plugin.py b/app/workflow/actions/invoke_plugin.py index f14a5f0c..ce50a163 100644 --- a/app/workflow/actions/invoke_plugin.py +++ b/app/workflow/actions/invoke_plugin.py @@ -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): diff --git a/app/workflow/actions/send_message.py b/app/workflow/actions/send_message.py index 36cb04f8..2bf0bda1 100644 --- a/app/workflow/actions/send_message.py +++ b/app/workflow/actions/send_message.py @@ -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")