diff --git a/app/api/endpoints/bangumi.py b/app/api/endpoints/bangumi.py index f88f5657..ae081b3b 100644 --- a/app/api/endpoints/bangumi.py +++ b/app/api/endpoints/bangumi.py @@ -26,14 +26,14 @@ def bangumi_subjects(type: int = 2, cat: int = None, sort: str = 'rank', year: int = None, - limit: int = 30, - offset: int = 0, + page: int = 1, + count: int = 30, _: schemas.TokenPayload = Depends(verify_token)) -> Any: """ 搜索Bangumi """ return RecommendChain().bangumi_discover(type=type, cat=cat, sort=sort, year=year, - limit=limit, offset=offset) + page=page, count=count) @router.get("/credits/{bangumiid}", summary="查询Bangumi演职员表", response_model=List[schemas.MediaPerson]) diff --git a/app/chain/recommend.py b/app/chain/recommend.py index 540caaf7..369ffa4e 100644 --- a/app/chain/recommend.py +++ b/app/chain/recommend.py @@ -165,7 +165,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): vote_average: float = 0, vote_count: int = 0, release_date: str = "", - page: int = 1) -> Any: + page: int = 1) -> List[dict]: """ TMDB热门电影 """ @@ -191,7 +191,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): vote_average: float = 0, vote_count: int = 0, release_date: str = "", - page: int = 1) -> Any: + page: int = 1) -> List[dict]: """ TMDB热门电视剧 """ @@ -209,7 +209,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): @log_execution_time(logger=logger) @cached(ttl=recommend_ttl, region=recommend_cache_region) - def tmdb_trending(self, page: int = 1) -> Any: + def tmdb_trending(self, page: int = 1) -> List[dict]: """ TMDB流行趋势 """ @@ -218,7 +218,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): @log_execution_time(logger=logger) @cached(ttl=recommend_ttl, region=recommend_cache_region) - def bangumi_calendar(self, page: int = 1, count: int = 30) -> Any: + def bangumi_calendar(self, page: int = 1, count: int = 30) -> List[dict]: """ Bangumi每日放送 """ @@ -232,7 +232,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): sort: str = 'rank', year: int = None, count: int = 30, - page: int = 1) -> Any: + page: int = 1) -> List[dict]: """ 搜索Bangumi """ @@ -244,7 +244,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): @log_execution_time(logger=logger) @cached(ttl=recommend_ttl, region=recommend_cache_region) - def douban_movie_showing(self, page: int = 1, count: int = 30) -> Any: + def douban_movie_showing(self, page: int = 1, count: int = 30) -> List[dict]: """ 豆瓣正在热映 """ @@ -253,7 +253,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): @log_execution_time(logger=logger) @cached(ttl=recommend_ttl, region=recommend_cache_region) - def douban_movies(self, sort: str = "R", tags: str = "", page: int = 1, count: int = 30) -> Any: + def douban_movies(self, sort: str = "R", tags: str = "", page: int = 1, count: int = 30) -> List[dict]: """ 豆瓣最新电影 """ @@ -263,7 +263,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): @log_execution_time(logger=logger) @cached(ttl=recommend_ttl, region=recommend_cache_region) - def douban_tvs(self, sort: str = "R", tags: str = "", page: int = 1, count: int = 30) -> Any: + def douban_tvs(self, sort: str = "R", tags: str = "", page: int = 1, count: int = 30) -> List[dict]: """ 豆瓣最新电视剧 """ @@ -273,7 +273,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): @log_execution_time(logger=logger) @cached(ttl=recommend_ttl, region=recommend_cache_region) - def douban_movie_top250(self, page: int = 1, count: int = 30) -> Any: + def douban_movie_top250(self, page: int = 1, count: int = 30) -> List[dict]: """ 豆瓣电影TOP250 """ @@ -282,7 +282,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): @log_execution_time(logger=logger) @cached(ttl=recommend_ttl, region=recommend_cache_region) - def douban_tv_weekly_chinese(self, page: int = 1, count: int = 30) -> Any: + def douban_tv_weekly_chinese(self, page: int = 1, count: int = 30) -> List[dict]: """ 豆瓣国产剧集榜 """ @@ -291,7 +291,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): @log_execution_time(logger=logger) @cached(ttl=recommend_ttl, region=recommend_cache_region) - def douban_tv_weekly_global(self, page: int = 1, count: int = 30) -> Any: + def douban_tv_weekly_global(self, page: int = 1, count: int = 30) -> List[dict]: """ 豆瓣全球剧集榜 """ @@ -300,7 +300,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): @log_execution_time(logger=logger) @cached(ttl=recommend_ttl, region=recommend_cache_region) - def douban_tv_animation(self, page: int = 1, count: int = 30) -> Any: + def douban_tv_animation(self, page: int = 1, count: int = 30) -> List[dict]: """ 豆瓣热门动漫 """ @@ -309,7 +309,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): @log_execution_time(logger=logger) @cached(ttl=recommend_ttl, region=recommend_cache_region) - def douban_movie_hot(self, page: int = 1, count: int = 30) -> Any: + def douban_movie_hot(self, page: int = 1, count: int = 30) -> List[dict]: """ 豆瓣热门电影 """ @@ -318,7 +318,7 @@ class RecommendChain(ChainBase, metaclass=Singleton): @log_execution_time(logger=logger) @cached(ttl=recommend_ttl, region=recommend_cache_region) - def douban_tv_hot(self, page: int = 1, count: int = 30) -> Any: + def douban_tv_hot(self, page: int = 1, count: int = 30) -> List[dict]: """ 豆瓣热门电视剧 """ diff --git a/app/modules/bangumi/bangumi.py b/app/modules/bangumi/bangumi.py index a53953e5..079b37de 100644 --- a/app/modules/bangumi/bangumi.py +++ b/app/modules/bangumi/bangumi.py @@ -31,14 +31,17 @@ class BangumiApi(object): @classmethod @cached(maxsize=settings.CACHE_CONF["bangumi"], ttl=settings.CACHE_CONF["meta"]) - def __invoke(cls, url, **kwargs): + def __invoke(cls, url, key: str = None, **kwargs): req_url = cls._base_url + url params = {} if kwargs: params.update(kwargs) resp = cls._req.get_res(url=req_url, params=params) try: - return resp.json() if resp else None + if not resp: + return None + result = resp.json() + return result.get(key) if key else result except Exception as e: print(e) return None @@ -200,4 +203,6 @@ class BangumiApi(object): """ 发现 """ - return self.__invoke("discover", **kwargs) + return self.__invoke(self._urls["discover"], + key="data", + _ts=datetime.strftime(datetime.now(), '%Y%m%d'), **kwargs)