This commit is contained in:
jxxghp
2023-06-19 13:03:12 +08:00
parent 8b4a44c8d4
commit 6d4b1eed77
6 changed files with 56 additions and 81 deletions

View File

@ -3,8 +3,8 @@ from typing import List, Any
from fastapi import APIRouter, Depends
from app import schemas
from app.chain.media import MediaChain
from app.chain.tmdb import TmdbChain
from app.core.context import MediaInfo
from app.db.models.user import User
from app.db.userauth import get_current_active_user
from app.schemas.types import MediaType
@ -18,11 +18,11 @@ async def tmdb_info(tmdbid: int, type_name: str) -> Any:
根据TMDBID查询themoviedb媒体信息
"""
mtype = MediaType.MOVIE if type_name == MediaType.MOVIE.value else MediaType.TV
media = MediaChain().recognize_media(tmdbid=tmdbid, mtype=mtype)
if media:
return media.to_dict()
else:
tmdbinfo = TmdbChain().tmdb_info(tmdbid=tmdbid, mtype=mtype)
if not tmdbinfo:
return schemas.MediaInfo()
else:
return MediaInfo(tmdb_info=tmdbinfo).to_dict()
@router.get("/tmdbmovies", response_model=List[schemas.MediaInfo])
@ -34,11 +34,14 @@ async def tmdb_movies(sort_by: str = "popularity.desc",
"""
浏览TMDB电影信息
"""
movies = TmdbChain().tmdb_movies(sort_by=sort_by,
with_genres=with_genres,
with_original_language=with_original_language,
page=page)
return [movie.to_dict() for movie in movies]
movies = TmdbChain().tmdb_discover(mtype=MediaType.MOVIE,
sort_by=sort_by,
with_genres=with_genres,
with_original_language=with_original_language,
page=page)
if not movies:
return []
return [MediaInfo(tmdb_info=movie).to_dict() for movie in movies]
@router.get("/tmdbtvs", response_model=List[schemas.MediaInfo])
@ -50,8 +53,11 @@ async def tmdb_tvs(sort_by: str = "popularity.desc",
"""
浏览TMDB剧集信息
"""
tvs = TmdbChain().tmdb_tvs(sort_by=sort_by,
with_genres=with_genres,
with_original_language=with_original_language,
page=page)
return [tv.to_dict() for tv in tvs]
tvs = TmdbChain().tmdb_discover(mtype=MediaType.TV,
sort_by=sort_by,
with_genres=with_genres,
with_original_language=with_original_language,
page=page)
if not tvs:
return []
return [MediaInfo(tmdb_info=tv).to_dict() for tv in tvs]