diff --git a/app/api/endpoints/douban.py b/app/api/endpoints/douban.py index a1e7c6bf..6766e6db 100644 --- a/app/api/endpoints/douban.py +++ b/app/api/endpoints/douban.py @@ -45,6 +45,21 @@ def recognize_doubanid(doubanid: str, return schemas.Context() +@router.get("/showing", summary="豆瓣正在热映", response_model=List[schemas.MediaInfo]) +def movie_showing(page: int = 1, + count: int = 30, + db: Session = Depends(get_db), + _: schemas.TokenPayload = Depends(verify_token)) -> Any: + """ + 浏览豆瓣正在热映 + """ + movies = DoubanChain(db).movie_showing(page=page, count=count) + if not movies: + return [] + medias = [MediaInfo(douban_info=movie) for movie in movies] + return [media.to_dict() for media in medias] + + @router.get("/movies", summary="豆瓣电影", response_model=List[schemas.MediaInfo]) def douban_movies(sort: str = "R", tags: str = "", diff --git a/app/api/endpoints/search.py b/app/api/endpoints/search.py index cb89b76b..3a2ae68e 100644 --- a/app/api/endpoints/search.py +++ b/app/api/endpoints/search.py @@ -42,7 +42,7 @@ def search_by_tmdbid(mediaid: str, # 识别豆瓣信息 context = DoubanChain(db).recognize_by_doubanid(doubanid) if not context or not context.media_info or not context.media_info.tmdb_id: - raise HTTPException(status_code=404, detail="无法识别TMDB媒体信息!") + return [] torrents = SearchChain(db).search_by_tmdbid(tmdbid=context.media_info.tmdb_id, mtype=context.media_info.type, area=area) diff --git a/app/core/context.py b/app/core/context.py index b8537c15..702848a6 100644 --- a/app/core/context.py +++ b/app/core/context.py @@ -446,6 +446,8 @@ class MediaInfo: self.poster_path = info.get("pic", {}).get("large") if not self.poster_path and info.get("cover_url"): self.poster_path = info.get("cover_url") + if not self.poster_path and info.get("cover"): + self.poster_path = info.get("cover").get("url") # 简介 if not self.overview: self.overview = info.get("intro") or info.get("card_subtitle") or ""