From 2e796f41cb08a73142d5045c9bb3b409626eb9ad Mon Sep 17 00:00:00 2001 From: jxxghp Date: Mon, 27 Jan 2025 13:45:57 +0800 Subject: [PATCH] fix api --- app/api/endpoints/tmdb.py | 8 ++++++++ app/chain/recommend.py | 27 +++++++++++++++++++++++---- app/chain/tmdb.py | 20 ++++++++++++++------ 3 files changed, 45 insertions(+), 10 deletions(-) diff --git a/app/api/endpoints/tmdb.py b/app/api/endpoints/tmdb.py index 61c39ca3..7770ea56 100644 --- a/app/api/endpoints/tmdb.py +++ b/app/api/endpoints/tmdb.py @@ -118,7 +118,9 @@ def tmdb_person_credits(person_id: int, def tmdb_movies(sort_by: str = "popularity.desc", with_genres: str = "", with_original_language: str = "", + with_keywords: str = "", vote_average: float = 0, + vote_count: int = 0, release_date: str = "", page: int = 1, _: schemas.TokenPayload = Depends(verify_token)) -> Any: @@ -128,7 +130,9 @@ def tmdb_movies(sort_by: str = "popularity.desc", return RecommendChain().tmdb_movies(sort_by=sort_by, with_genres=with_genres, with_original_language=with_original_language, + with_keywords=with_keywords, vote_average=vote_average, + vote_count=vote_count, release_date=release_date, page=page) @@ -137,7 +141,9 @@ def tmdb_movies(sort_by: str = "popularity.desc", def tmdb_tvs(sort_by: str = "popularity.desc", with_genres: str = "", with_original_language: str = "", + with_keywords: str = "", vote_average: float = 0, + vote_count: int = 0, release_date: str = "", page: int = 1, _: schemas.TokenPayload = Depends(verify_token)) -> Any: @@ -147,7 +153,9 @@ def tmdb_tvs(sort_by: str = "popularity.desc", return RecommendChain().tmdb_tvs(sort_by=sort_by, with_genres=with_genres, with_original_language=with_original_language, + with_keywords=with_keywords, vote_average=vote_average, + vote_count=vote_count, release_date=release_date, page=page) diff --git a/app/chain/recommend.py b/app/chain/recommend.py index a0b18a8c..d638cb68 100644 --- a/app/chain/recommend.py +++ b/app/chain/recommend.py @@ -157,8 +157,14 @@ class RecommendChain(ChainBase, metaclass=Singleton): @log_execution_time(logger=logger) @cached(ttl=recommend_ttl, region=recommend_cache_region) - def tmdb_movies(self, sort_by: str = "popularity.desc", with_genres: str = "", - with_original_language: str = "", vote_average: float = 0, page: int = 1) -> Any: + def tmdb_movies(self, sort_by: str = "popularity.desc", + with_genres: str = "", + with_original_language: str = "", + with_keywords: str = "", + vote_average: float = 0, + vote_count: int = 0, + release_date: str = "", + page: int = 1) -> Any: """ TMDB热门电影 """ @@ -166,14 +172,23 @@ class RecommendChain(ChainBase, metaclass=Singleton): sort_by=sort_by, with_genres=with_genres, with_original_language=with_original_language, + with_keywords=with_keywords, vote_average=vote_average, + vote_count=vote_count, + release_date=release_date, page=page) return [movie.to_dict() for movie in movies] if movies else [] @log_execution_time(logger=logger) @cached(ttl=recommend_ttl, region=recommend_cache_region) - def tmdb_tvs(self, sort_by: str = "popularity.desc", with_genres: str = "", - with_original_language: str = "zh|en|ja|ko", page: int = 1) -> Any: + def tmdb_tvs(self, sort_by: str = "popularity.desc", + with_genres: str = "", + with_original_language: str = "zh|en|ja|ko", + with_keywords: str = "", + vote_average: float = 0, + vote_count: int = 0, + release_date: str = "", + page: int = 1) -> Any: """ TMDB热门电视剧 """ @@ -181,6 +196,10 @@ class RecommendChain(ChainBase, metaclass=Singleton): sort_by=sort_by, with_genres=with_genres, with_original_language=with_original_language, + with_keywords=with_keywords, + vote_average=vote_average, + vote_count=vote_count, + release_date=release_date, page=page) return [tv.to_dict() for tv in tvs] if tvs else [] diff --git a/app/chain/tmdb.py b/app/chain/tmdb.py index d6335322..2262131d 100644 --- a/app/chain/tmdb.py +++ b/app/chain/tmdb.py @@ -14,24 +14,32 @@ class TmdbChain(ChainBase, metaclass=Singleton): TheMovieDB处理链,单例运行 """ - def tmdb_discover(self, mtype: MediaType, sort_by: str, with_genres: str, - with_original_language: str, vote_average: float, - release_date: str, page: int = 1) -> Optional[List[MediaInfo]]: + def tmdb_discover(self, mtype: MediaType, + sort_by: str, + with_genres: str, + with_original_language: str, + with_keywords: str, + vote_average: float, + vote_count: int, + release_date: str, + page: int = 1) -> Optional[List[MediaInfo]]: """ :param mtype: 媒体类型 :param sort_by: 排序方式 :param with_genres: 类型 :param with_original_language: 语言 + :param with_keywords: 关键字 :param vote_average: 评分 + :param vote_count: 评分人数 :param release_date: 上映日期 :param page: 页码 :return: 媒体信息列表 """ return self.run_module("tmdb_discover", mtype=mtype, sort_by=sort_by, with_genres=with_genres, - with_original_language=with_original_language, - vote_average=vote_average, release_date=release_date, - page=page) + with_original_language=with_original_language, with_keywords=with_keywords, + vote_average=vote_average, vote_count=vote_count, + release_date=release_date, page=page) def tmdb_trending(self, page: int = 1) -> Optional[List[MediaInfo]]: """