diff --git a/app/api/endpoints/douban.py b/app/api/endpoints/douban.py index 6766e6db..9459e91a 100644 --- a/app/api/endpoints/douban.py +++ b/app/api/endpoints/douban.py @@ -139,6 +139,18 @@ def tv_weekly_global(page: int = 1, return [MediaInfo(douban_info=tv).to_dict() for tv in tvs] +@router.get("/tv_animation", summary="豆瓣动画剧集", response_model=List[schemas.MediaInfo]) +def tv_animation(page: int = 1, + count: int = 30, + db: Session = Depends(get_db), + _: schemas.TokenPayload = Depends(verify_token)) -> Any: + """ + 热门动画剧集 + """ + tvs = DoubanChain(db).tv_animation(page=page, count=count) + return [MediaInfo(douban_info=tv).to_dict() for tv in tvs] + + @router.get("/{doubanid}", summary="查询豆瓣详情", response_model=schemas.MediaInfo) def douban_info(doubanid: str, db: Session = Depends(get_db), diff --git a/app/chain/douban.py b/app/chain/douban.py index 3b597b05..8cce9fd4 100644 --- a/app/chain/douban.py +++ b/app/chain/douban.py @@ -84,3 +84,9 @@ class DoubanChain(ChainBase): """ return self.run_module("douban_discover", mtype=mtype, sort=sort, tags=tags, page=page, count=count) + + def tv_animation(self, page: int = 1, count: int = 30) -> List[dict]: + """ + 获取动画剧集 + """ + return self.run_module("tv_animation", page=page, count=count) diff --git a/app/modules/douban/__init__.py b/app/modules/douban/__init__.py index 80032456..eb95bddc 100644 --- a/app/modules/douban/__init__.py +++ b/app/modules/douban/__init__.py @@ -369,6 +369,16 @@ class DoubanModule(_ModuleBase): return [] return infos.get("subject_collection_items") + def tv_animation(self, page: int = 1, count: int = 30) -> List[dict]: + """ + 获取豆瓣动画剧 + """ + infos = self.doubanapi.tv_animation(start=(page - 1) * count, + count=count) + if not infos: + return [] + return infos.get("subject_collection_items") + def search_medias(self, meta: MetaBase) -> Optional[List[MediaInfo]]: """ 搜索媒体信息