This commit is contained in:
jxxghp 2023-07-30 12:21:23 +08:00
parent df05c46a5b
commit 00387ec334
6 changed files with 23 additions and 16 deletions

View File

@ -100,11 +100,12 @@ def tmdb_person(person_id: int,
@router.get("/person/credits/{person_id}", summary="人物参演作品", response_model=List[schemas.MediaInfo]) @router.get("/person/credits/{person_id}", summary="人物参演作品", response_model=List[schemas.MediaInfo])
def tmdb_person_credits(person_id: int, def tmdb_person_credits(person_id: int,
page: int = 1,
_: schemas.TokenPayload = Depends(verify_token)) -> Any: _: schemas.TokenPayload = Depends(verify_token)) -> Any:
""" """
根据人物ID查询人物参演作品 根据人物ID查询人物参演作品
""" """
tmdbinfo = TmdbChain().person_credits(person_id=person_id) tmdbinfo = TmdbChain().person_credits(person_id=person_id, page=page)
if not tmdbinfo: if not tmdbinfo:
return [] return []
else: else:

View File

@ -99,9 +99,10 @@ class TmdbChain(ChainBase):
""" """
return self.run_module("person_detail", person_id=person_id) return self.run_module("person_detail", person_id=person_id)
def person_credits(self, person_id: int) -> List[dict]: def person_credits(self, person_id: int, page: int = 1) -> List[dict]:
""" """
根据人物ID查询人物参演作品 根据人物ID查询人物参演作品
:param person_id: 人物ID :param person_id: 人物ID
:param page: 页码
""" """
return self.run_module("person_credits", person_id=person_id) return self.run_module("person_credits", person_id=person_id, page=page)

View File

@ -316,7 +316,7 @@ class MediaInfo:
self.year = self.release_date[:4] self.year = self.release_date[:4]
# 季集信息 # 季集信息
if info.get('seasons'): if info.get('seasons'):
self.season_info = info.get('seasons') self.season_info = [s.to_dict() for s in info.get('seasons')]
for seainfo in info.get('seasons'): for seainfo in info.get('seasons'):
# 季 # 季
season = seainfo.get("season_number") season = seainfo.get("season_number")
@ -503,8 +503,6 @@ class MediaInfo:
dicts["type"] = self.type.value if self.type else None dicts["type"] = self.type.value if self.type else None
dicts["detail_link"] = self.detail_link dicts["detail_link"] = self.detail_link
dicts["title_year"] = self.title_year dicts["title_year"] = self.title_year
dicts["season_info"] = [info.to_dict() for info in self.season_info]
dicts["tmdb_info"] = self.tmdb_info.to_dict()
return dicts return dicts

View File

@ -382,9 +382,10 @@ class TheMovieDbModule(_ModuleBase):
""" """
return self.tmdb.get_person_detail(person_id=person_id) return self.tmdb.get_person_detail(person_id=person_id)
def person_credits(self, person_id: int) -> dict: def person_credits(self, person_id: int, page: int = 1) -> List[dict]:
""" """
根据TMDBID查询人物参演详情 根据TMDBID查询人物参演作品
:param person_id: 人物ID :param person_id: 人物ID
:param page: 页码
""" """
return self.tmdb.get_person_credits(person_id=person_id) return self.tmdb.get_person_credits(person_id=person_id, page=page)

View File

@ -1136,22 +1136,28 @@ class TmdbHelper:
return {} return {}
try: try:
logger.info(f"正在获取人物详情:{person_id}...") logger.info(f"正在获取人物详情:{person_id}...")
info = self.person.details(person_id=person_id) or {} info = self.person.details(person_id=person_id)
return info if info:
info_dict = info.to_dict()
return info_dict
return {}
except Exception as e: except Exception as e:
print(str(e)) print(str(e))
return {} return {}
def get_person_credits(self, person_id: int) -> dict: def get_person_credits(self, person_id: int, page: int = 1, count: int = 24) -> List[dict]:
""" """
获取人物参演作品 获取人物参演作品
""" """
if not self.person: if not self.person:
return {} return []
try: try:
logger.info(f"正在获取人物参演作品:{person_id}...") logger.info(f"正在获取人物参演作品:{person_id}...")
info = self.person.movie_credits(person_id=person_id) or {} info = self.person.movie_credits(person_id=person_id) or {}
return info.get('cast') or [] cast = info.get('cast') or []
if cast:
return [c.to_dict() for c in cast][(page - 1) * count: page * count]
return []
except Exception as e: except Exception as e:
print(str(e)) print(str(e))
return {} return []

View File

@ -40,7 +40,7 @@ class TmdbPerson(BaseModel):
gender: Optional[int] = None gender: Optional[int] = None
original_name: Optional[str] = None original_name: Optional[str] = None
credit_id: Optional[str] = None credit_id: Optional[str] = None
also_known_as: Optional[list] = [] also_known_as: Optional[dict] = {}
birthday: Optional[str] = None birthday: Optional[str] = None
deathday: Optional[str] = None deathday: Optional[str] = None
imdb_id: Optional[str] = None imdb_id: Optional[str] = None