fix context

This commit is contained in:
jxxghp 2023-08-02 09:04:40 +08:00
parent fcf0789684
commit 99ed6fd163
2 changed files with 29 additions and 5 deletions

View File

@ -1,6 +1,6 @@
import re import re
from dataclasses import dataclass, field, asdict from dataclasses import dataclass, field, asdict
from typing import List, Dict, Any from typing import List, Dict, Any, Optional
from app.core.config import settings from app.core.config import settings
from app.core.meta import MetaBase from app.core.meta import MetaBase
@ -163,9 +163,32 @@ class MediaInfo:
# 豆瓣 INFO # 豆瓣 INFO
douban_info: dict = field(default_factory=dict) douban_info: dict = field(default_factory=dict)
# 导演 # 导演
directors: List[dict] = field(default_factory=dict) directors: List[dict] = field(default_factory=list)
# 演员 # 演员
actors: List[dict] = field(default_factory=dict) actors: List[dict] = field(default_factory=list)
# 其它TMDB属性
adult: Optional[bool] = False
created_by: Optional[list] = field(default_factory=list)
episode_run_time: Optional[list] = field(default_factory=list)
genres: Optional[list] = field(default_factory=list)
first_air_date: Optional[str] = None
homepage: Optional[str] = None
languages: Optional[list] = field(default_factory=list)
last_air_date: Optional[str] = None
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=list)
original_name: Optional[str] = None
production_companies: Optional[list] = field(default_factory=list)
production_countries: Optional[list] = field(default_factory=list)
spoken_languages: Optional[list] = field(default_factory=list)
status: Optional[str] = None
tagline: Optional[str] = None
vote_count: Optional[int] = 0
popularity: Optional[int] = 0
runtime: Optional[int] = None
next_episode_to_air: Optional[str] = None
def __post_init__(self): def __post_init__(self):
# 设置媒体信息 # 设置媒体信息
@ -267,7 +290,7 @@ class MediaInfo:
if cast.get("known_for_department") == "Acting": if cast.get("known_for_department") == "Acting":
actors.append(cast) actors.append(cast)
for crew in _credits.get("crew"): for crew in _credits.get("crew"):
if crew.get("job") == "Director": if crew.get("job") in ["Director", "Writer", "Editor", "Producer"]:
directors.append(crew) directors.append(crew)
return directors, actors return directors, actors
@ -343,7 +366,7 @@ class MediaInfo:
self.names = info.get('names') or [] self.names = info.get('names') or []
# 剩余属性赋值 # 剩余属性赋值
for key, value in info.items(): for key, value in info.items():
if not hasattr(self, key): if hasattr(self, key) and not getattr(self, key):
setattr(self, key, value) setattr(self, key, value)
def set_douban_info(self, info: dict): def set_douban_info(self, info: dict):

View File

@ -48,3 +48,4 @@ class TmdbPerson(BaseModel):
place_of_birth: Optional[str] = None place_of_birth: Optional[str] = None
popularity: Optional[float] = None popularity: Optional[float] = None
images: Optional[dict] = {} images: Optional[dict] = {}
biography: Optional[str] = None