diff --git a/app/core/context.py b/app/core/context.py index 2873fbd4..03b7fa74 100644 --- a/app/core/context.py +++ b/app/core/context.py @@ -502,4 +502,8 @@ class Context: """ 转换为字典 """ - return asdict(self) + return { + "meta_info": self.meta_info.to_dict() if self.meta_info else None, + "torrent_info": self.torrent_info.to_dict() if self.torrent_info else None, + "media_info": self.media_info.to_dict() if self.media_info else None + } diff --git a/app/core/meta/metabase.py b/app/core/meta/metabase.py index c8fade6b..2f33e22d 100644 --- a/app/core/meta/metabase.py +++ b/app/core/meta/metabase.py @@ -1,4 +1,4 @@ -from dataclasses import dataclass +from dataclasses import dataclass, asdict from typing import Union, Optional, List import cn2an @@ -439,3 +439,11 @@ class MetaBase(object): elif str(ep).isdigit(): self.begin_episode = int(ep) self.end_episode = None + + def to_dict(self): + """ + 转为字典 + """ + dicts = asdict(self) + dicts["type"] = self.type.value if self.type else None + return dicts diff --git a/app/schemas/context.py b/app/schemas/context.py index db3db914..b97fb912 100644 --- a/app/schemas/context.py +++ b/app/schemas/context.py @@ -11,7 +11,7 @@ class MetaInfo(BaseModel): 识别元数据 """ # 是否处理的文件 - isfile: bool = False + isfile: Optional[bool] = False # 原字符串 org_string: Optional[str] = None # 副标题 @@ -25,13 +25,13 @@ class MetaInfo(BaseModel): # 年份 year: Optional[str] = None # 总季数 - total_seasons: int = 0 + total_seasons: Optional[int] = 0 # 识别的开始季 数字 begin_season: Optional[int] = None # 识别的结束季 数字 end_season: Optional[int] = None # 总集数 - total_episodes: int = 0 + total_episodes: Optional[int] = 0 # 识别的开始集 begin_episode: Optional[int] = None # 识别的结束集 @@ -89,9 +89,9 @@ class MediaInfo(BaseModel): # 二级分类 category: Optional[str] = "" # 季季集清单 - seasons: Dict[int, list] = {} + seasons: Optional[Dict[int, list]] = {} # 季详情 - season_info: List[dict] = [] + season_info: Optional[List[dict]] = [] # 别名和译名 names: Optional[list] = [] # 演员