fix douban rank

This commit is contained in:
jxxghp 2023-11-10 12:23:03 +08:00
parent 3905463940
commit 9a102056d8
3 changed files with 64 additions and 5 deletions

View File

@ -127,6 +127,28 @@ def tv_animation(page: int = 1,
return [MediaInfo(douban_info=tv).to_dict() for tv in tvs] return [MediaInfo(douban_info=tv).to_dict() for tv in tvs]
@router.get("/movie_hot", summary="豆瓣热门电影", response_model=List[schemas.MediaInfo])
def movie_hot(page: int = 1,
count: int = 30,
_: schemas.TokenPayload = Depends(verify_token)) -> Any:
"""
热门电影
"""
movies = DoubanChain().movie_hot(page=page, count=count)
return [MediaInfo(douban_info=movie).to_dict() for movie in movies]
@router.get("/tv_hot", summary="豆瓣热门电视剧", response_model=List[schemas.MediaInfo])
def tv_hot(page: int = 1,
count: int = 30,
_: schemas.TokenPayload = Depends(verify_token)) -> Any:
"""
热门电视剧
"""
tvs = DoubanChain().tv_hot(page=page, count=count)
return [MediaInfo(douban_info=tv).to_dict() for tv in tvs]
@router.get("/{doubanid}", summary="查询豆瓣详情", response_model=schemas.MediaInfo) @router.get("/{doubanid}", summary="查询豆瓣详情", response_model=schemas.MediaInfo)
def douban_info(doubanid: str, def douban_info(doubanid: str,
_: schemas.TokenPayload = Depends(verify_token)) -> Any: _: schemas.TokenPayload = Depends(verify_token)) -> Any:

View File

@ -1,6 +1,7 @@
from typing import Optional, List from typing import Optional, List
from app.chain import ChainBase from app.chain import ChainBase
from app.core.config import settings
from app.schemas import MediaType from app.schemas import MediaType
from app.utils.singleton import Singleton from app.utils.singleton import Singleton
@ -10,7 +11,7 @@ class DoubanChain(ChainBase, metaclass=Singleton):
豆瓣处理链单例运行 豆瓣处理链单例运行
""" """
def movie_top250(self, page: int = 1, count: int = 30) -> List[dict]: def movie_top250(self, page: int = 1, count: int = 30) -> Optional[List[dict]]:
""" """
获取豆瓣电影TOP250 获取豆瓣电影TOP250
:param page: 页码 :param page: 页码
@ -18,19 +19,19 @@ class DoubanChain(ChainBase, metaclass=Singleton):
""" """
return self.run_module("movie_top250", page=page, count=count) return self.run_module("movie_top250", page=page, count=count)
def movie_showing(self, page: int = 1, count: int = 30) -> List[dict]: def movie_showing(self, page: int = 1, count: int = 30) -> Optional[List[dict]]:
""" """
获取正在上映的电影 获取正在上映的电影
""" """
return self.run_module("movie_showing", page=page, count=count) return self.run_module("movie_showing", page=page, count=count)
def tv_weekly_chinese(self, page: int = 1, count: int = 30) -> List[dict]: def tv_weekly_chinese(self, page: int = 1, count: int = 30) -> Optional[List[dict]]:
""" """
获取本周中国剧集榜 获取本周中国剧集榜
""" """
return self.run_module("tv_weekly_chinese", page=page, count=count) return self.run_module("tv_weekly_chinese", page=page, count=count)
def tv_weekly_global(self, page: int = 1, count: int = 30) -> List[dict]: def tv_weekly_global(self, page: int = 1, count: int = 30) -> Optional[List[dict]]:
""" """
获取本周全球剧集榜 获取本周全球剧集榜
""" """
@ -50,8 +51,24 @@ class DoubanChain(ChainBase, metaclass=Singleton):
return self.run_module("douban_discover", mtype=mtype, sort=sort, tags=tags, return self.run_module("douban_discover", mtype=mtype, sort=sort, tags=tags,
page=page, count=count) page=page, count=count)
def tv_animation(self, page: int = 1, count: int = 30) -> List[dict]: def tv_animation(self, page: int = 1, count: int = 30) -> Optional[List[dict]]:
""" """
获取动画剧集 获取动画剧集
""" """
return self.run_module("tv_animation", page=page, count=count) return self.run_module("tv_animation", page=page, count=count)
def movie_hot(self, page: int = 1, count: int = 30) -> Optional[List[dict]]:
"""
获取热门电影
"""
if settings.RECOGNIZE_SOURCE != "douban":
return None
return self.run_module("movie_hot", page=page, count=count)
def tv_hot(self, page: int = 1, count: int = 30) -> Optional[List[dict]]:
"""
获取热门剧集
"""
if settings.RECOGNIZE_SOURCE != "douban":
return None
return self.run_module("tv_hot", page=page, count=count)

View File

@ -477,6 +477,26 @@ class DoubanModule(_ModuleBase):
return [] return []
return infos.get("subject_collection_items") return infos.get("subject_collection_items")
def movie_hot(self, page: int = 1, count: int = 30) -> List[dict]:
"""
获取豆瓣热门电影
"""
infos = self.doubanapi.movie_hot_gaia(start=(page - 1) * count,
count=count)
if not infos:
return []
return infos.get("subject_collection_items")
def tv_hot(self, page: int = 1, count: int = 30) -> List[dict]:
"""
获取豆瓣热门剧集
"""
infos = self.doubanapi.tv_hot(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]]: def search_medias(self, meta: MetaBase) -> Optional[List[MediaInfo]]:
""" """
搜索媒体信息 搜索媒体信息