add tmdb person api
This commit is contained in:
parent
f6978b916b
commit
4ab54b7672
@ -84,19 +84,6 @@ def tmdb_credits(tmdbid: int,
|
|||||||
return [schemas.TmdbPerson(**tmdbinfo) for tmdbinfo in tmdbinfos]
|
return [schemas.TmdbPerson(**tmdbinfo) for tmdbinfo in tmdbinfos]
|
||||||
|
|
||||||
|
|
||||||
@router.get("/credit/details/{credit_id}", summary="演员参演作品", response_model=List[schemas.MediaInfo])
|
|
||||||
def tmdb_credit_details(credit_id: str,
|
|
||||||
_: schemas.TokenPayload = Depends(verify_token)) -> Any:
|
|
||||||
"""
|
|
||||||
根据演员ID查询演员参演作品
|
|
||||||
"""
|
|
||||||
tmdbinfos = TmdbChain().credit_details(credit_id=credit_id)
|
|
||||||
if not tmdbinfos:
|
|
||||||
return []
|
|
||||||
else:
|
|
||||||
return [MediaInfo(tmdb_info=tmdbinfo).to_dict() for tmdbinfo in tmdbinfos]
|
|
||||||
|
|
||||||
|
|
||||||
@router.get("/person/{person_id}", summary="人物详情", response_model=schemas.TmdbPerson)
|
@router.get("/person/{person_id}", summary="人物详情", response_model=schemas.TmdbPerson)
|
||||||
def tmdb_person(person_id: int,
|
def tmdb_person(person_id: int,
|
||||||
_: schemas.TokenPayload = Depends(verify_token)) -> Any:
|
_: schemas.TokenPayload = Depends(verify_token)) -> Any:
|
||||||
@ -110,6 +97,19 @@ def tmdb_person(person_id: int,
|
|||||||
return schemas.TmdbPerson(**tmdbinfo)
|
return schemas.TmdbPerson(**tmdbinfo)
|
||||||
|
|
||||||
|
|
||||||
|
@router.get("/person/credits/{person_id}", summary="人物参演作品", response_model=List[schemas.MediaInfo])
|
||||||
|
def tmdb_person_credits(person_id: int,
|
||||||
|
_: schemas.TokenPayload = Depends(verify_token)) -> Any:
|
||||||
|
"""
|
||||||
|
根据人物ID查询人物参演作品
|
||||||
|
"""
|
||||||
|
tmdbinfo = TmdbChain().person_credits(person_id=person_id)
|
||||||
|
if not tmdbinfo:
|
||||||
|
return []
|
||||||
|
else:
|
||||||
|
return [MediaInfo(tmdb_info=tmdbinfo).to_dict() for tmdbinfo in tmdbinfo]
|
||||||
|
|
||||||
|
|
||||||
@router.get("/movies", summary="TMDB电影", response_model=List[schemas.MediaInfo])
|
@router.get("/movies", summary="TMDB电影", response_model=List[schemas.MediaInfo])
|
||||||
def tmdb_movies(sort_by: str = "popularity.desc",
|
def tmdb_movies(sort_by: str = "popularity.desc",
|
||||||
with_genres: str = "",
|
with_genres: str = "",
|
||||||
|
@ -90,16 +90,16 @@ class TmdbChain(ChainBase):
|
|||||||
"""
|
"""
|
||||||
return self.run_module("tv_credits", tmdbid=tmdbid)
|
return self.run_module("tv_credits", tmdbid=tmdbid)
|
||||||
|
|
||||||
def credit_details(self, credit_id: str) -> List[dict]:
|
|
||||||
"""
|
|
||||||
根据TMDBID查询演职员详情
|
|
||||||
:param credit_id: 人物ID
|
|
||||||
"""
|
|
||||||
return self.run_module("credit_details", credit_id=credit_id)
|
|
||||||
|
|
||||||
def person_detail(self, person_id: int) -> dict:
|
def person_detail(self, person_id: int) -> dict:
|
||||||
"""
|
"""
|
||||||
根据TMDBID查询演职员详情
|
根据TMDBID查询演职员详情
|
||||||
:param person_id: 人物ID
|
:param person_id: 人物ID
|
||||||
"""
|
"""
|
||||||
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]:
|
||||||
|
"""
|
||||||
|
根据人物ID查询人物参演作品
|
||||||
|
:param person_id: 人物ID
|
||||||
|
"""
|
||||||
|
return self.run_module("person_credits", person_id=person_id)
|
||||||
|
@ -373,16 +373,16 @@ class TheMovieDbModule(_ModuleBase):
|
|||||||
"""
|
"""
|
||||||
return self.tmdb.get_tv_credits(tmdbid=tmdbid)
|
return self.tmdb.get_tv_credits(tmdbid=tmdbid)
|
||||||
|
|
||||||
def credit_details(self, credit_id: str) -> List[dict]:
|
|
||||||
"""
|
|
||||||
根据TMDBID查询演职员详情
|
|
||||||
:param credit_id: 人物ID
|
|
||||||
"""
|
|
||||||
return self.tmdb.get_credit_details(credit_id=credit_id)
|
|
||||||
|
|
||||||
def person_detail(self, person_id: int) -> dict:
|
def person_detail(self, person_id: int) -> dict:
|
||||||
"""
|
"""
|
||||||
根据TMDBID查询人物详情
|
根据TMDBID查询人物详情
|
||||||
:param person_id: 人物ID
|
:param person_id: 人物ID
|
||||||
"""
|
"""
|
||||||
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:
|
||||||
|
"""
|
||||||
|
根据TMDBID查询人物参演详情
|
||||||
|
:param person_id: 人物ID
|
||||||
|
"""
|
||||||
|
return self.tmdb.get_person_credits(person_id=person_id)
|
||||||
|
@ -5,14 +5,14 @@ from urllib.parse import quote
|
|||||||
|
|
||||||
import zhconv
|
import zhconv
|
||||||
from lxml import etree
|
from lxml import etree
|
||||||
from .tmdbv3api import TMDb, Search, Movie, TV, Season, Episode, Discover, Trending, Credit, Person
|
|
||||||
from .tmdbv3api.exceptions import TMDbException
|
|
||||||
|
|
||||||
from app.core.config import settings
|
from app.core.config import settings
|
||||||
from app.log import logger
|
from app.log import logger
|
||||||
|
from app.schemas.types import MediaType
|
||||||
from app.utils.http import RequestUtils
|
from app.utils.http import RequestUtils
|
||||||
from app.utils.string import StringUtils
|
from app.utils.string import StringUtils
|
||||||
from app.schemas.types import MediaType
|
from .tmdbv3api import TMDb, Search, Movie, TV, Season, Episode, Discover, Trending, Person
|
||||||
|
from .tmdbv3api.exceptions import TMDbException
|
||||||
|
|
||||||
|
|
||||||
class TmdbHelper:
|
class TmdbHelper:
|
||||||
@ -45,7 +45,6 @@ class TmdbHelper:
|
|||||||
self.episode = Episode()
|
self.episode = Episode()
|
||||||
self.discover = Discover()
|
self.discover = Discover()
|
||||||
self.trending = Trending()
|
self.trending = Trending()
|
||||||
self.credit = Credit()
|
|
||||||
self.person = Person()
|
self.person = Person()
|
||||||
|
|
||||||
def search_multiis(self, title: str) -> List[dict]:
|
def search_multiis(self, title: str) -> List[dict]:
|
||||||
@ -1123,20 +1122,6 @@ class TmdbHelper:
|
|||||||
print(str(e))
|
print(str(e))
|
||||||
return []
|
return []
|
||||||
|
|
||||||
def get_credit_details(self, credit_id: str) -> List[dict]:
|
|
||||||
"""
|
|
||||||
获取演职员的详情
|
|
||||||
"""
|
|
||||||
if not self.credit:
|
|
||||||
return []
|
|
||||||
try:
|
|
||||||
logger.info(f"正在获取演职员参演作品:{credit_id}...")
|
|
||||||
info = self.credit.details(credit_id=credit_id) or {}
|
|
||||||
return info
|
|
||||||
except Exception as e:
|
|
||||||
print(str(e))
|
|
||||||
return []
|
|
||||||
|
|
||||||
def get_person_detail(self, person_id: int) -> dict:
|
def get_person_detail(self, person_id: int) -> dict:
|
||||||
"""
|
"""
|
||||||
获取人物详情
|
获取人物详情
|
||||||
@ -1150,3 +1135,17 @@ class TmdbHelper:
|
|||||||
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:
|
||||||
|
"""
|
||||||
|
获取人物参演作品
|
||||||
|
"""
|
||||||
|
if not self.person:
|
||||||
|
return {}
|
||||||
|
try:
|
||||||
|
logger.info(f"正在获取人物参演作品:{person_id}...")
|
||||||
|
info = self.person.movie_credits(person_id=person_id) or {}
|
||||||
|
return info.get('cast') or []
|
||||||
|
except Exception as e:
|
||||||
|
print(str(e))
|
||||||
|
return {}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user