From 6afdde7dc1a6c3b7431831655792738bb38a2413 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Thu, 31 Jul 2025 13:36:43 +0800 Subject: [PATCH] =?UTF-8?q?discover=E6=9B=B4=E6=96=B0=E4=B8=BA=E5=BC=82?= =?UTF-8?q?=E6=AD=A5=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/endpoints/discover.py | 132 +++++++++++++++++----------------- 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/app/api/endpoints/discover.py b/app/api/endpoints/discover.py index 1f7117c7..05c8c0e4 100644 --- a/app/api/endpoints/discover.py +++ b/app/api/endpoints/discover.py @@ -3,13 +3,13 @@ from typing import Any, List, Optional from fastapi import APIRouter, Depends from app import schemas +from app.chain.bangumi import BangumiChain +from app.chain.douban import DoubanChain +from app.chain.tmdb import TmdbChain from app.core.event import eventmanager from app.core.security import verify_token from app.schemas import DiscoverSourceEventData from app.schemas.types import ChainEventType, MediaType -from app.chain.bangumi import BangumiChain -from app.chain.douban import DoubanChain -from app.chain.tmdb import TmdbChain router = APIRouter() @@ -31,100 +31,100 @@ def source(_: schemas.TokenPayload = Depends(verify_token)) -> Any: @router.get("/bangumi", summary="探索Bangumi", response_model=List[schemas.MediaInfo]) -def bangumi(type: Optional[int] = 2, - cat: Optional[int] = None, - sort: Optional[str] = 'rank', - year: Optional[str] = None, - page: Optional[int] = 1, - count: Optional[int] = 30, - _: schemas.TokenPayload = Depends(verify_token)) -> Any: +async def bangumi(type: Optional[int] = 2, + cat: Optional[int] = None, + sort: Optional[str] = 'rank', + year: Optional[str] = None, + page: Optional[int] = 1, + count: Optional[int] = 30, + _: schemas.TokenPayload = Depends(verify_token)) -> Any: """ 探索Bangumi """ - medias = BangumiChain().discover(type=type, cat=cat, sort=sort, year=year, - limit=count, offset=(page - 1) * count) + medias = await BangumiChain().async_discover(type=type, cat=cat, sort=sort, year=year, + limit=count, offset=(page - 1) * count) if medias: return [media.to_dict() for media in medias] return [] @router.get("/douban_movies", summary="探索豆瓣电影", response_model=List[schemas.MediaInfo]) -def douban_movies(sort: Optional[str] = "R", - tags: Optional[str] = "", - page: Optional[int] = 1, - count: Optional[int] = 30, - _: schemas.TokenPayload = Depends(verify_token)) -> Any: +async def douban_movies(sort: Optional[str] = "R", + tags: Optional[str] = "", + page: Optional[int] = 1, + count: Optional[int] = 30, + _: schemas.TokenPayload = Depends(verify_token)) -> Any: """ 浏览豆瓣电影信息 """ - movies = DoubanChain().douban_discover(mtype=MediaType.MOVIE, - sort=sort, tags=tags, page=page, count=count) + movies = await DoubanChain().async_douban_discover(mtype=MediaType.MOVIE, + sort=sort, tags=tags, page=page, count=count) return [media.to_dict() for media in movies] if movies else [] @router.get("/douban_tvs", summary="探索豆瓣剧集", response_model=List[schemas.MediaInfo]) -def douban_tvs(sort: Optional[str] = "R", - tags: Optional[str] = "", - page: Optional[int] = 1, - count: Optional[int] = 30, - _: schemas.TokenPayload = Depends(verify_token)) -> Any: +async def douban_tvs(sort: Optional[str] = "R", + tags: Optional[str] = "", + page: Optional[int] = 1, + count: Optional[int] = 30, + _: schemas.TokenPayload = Depends(verify_token)) -> Any: """ 浏览豆瓣剧集信息 """ - tvs = DoubanChain().douban_discover(mtype=MediaType.TV, - sort=sort, tags=tags, page=page, count=count) + tvs = await DoubanChain().async_douban_discover(mtype=MediaType.TV, + sort=sort, tags=tags, page=page, count=count) return [media.to_dict() for media in tvs] if tvs else [] @router.get("/tmdb_movies", summary="探索TMDB电影", response_model=List[schemas.MediaInfo]) -def tmdb_movies(sort_by: Optional[str] = "popularity.desc", - with_genres: Optional[str] = "", - with_original_language: Optional[str] = "", - with_keywords: Optional[str] = "", - with_watch_providers: Optional[str] = "", - vote_average: Optional[float] = 0.0, - vote_count: Optional[int] = 0, - release_date: Optional[str] = "", - page: Optional[int] = 1, - _: schemas.TokenPayload = Depends(verify_token)) -> Any: +async def tmdb_movies(sort_by: Optional[str] = "popularity.desc", + with_genres: Optional[str] = "", + with_original_language: Optional[str] = "", + with_keywords: Optional[str] = "", + with_watch_providers: Optional[str] = "", + vote_average: Optional[float] = 0.0, + vote_count: Optional[int] = 0, + release_date: Optional[str] = "", + page: Optional[int] = 1, + _: schemas.TokenPayload = Depends(verify_token)) -> Any: """ 浏览TMDB电影信息 """ - movies = TmdbChain().tmdb_discover(mtype=MediaType.MOVIE, - sort_by=sort_by, - with_genres=with_genres, - with_original_language=with_original_language, - with_keywords=with_keywords, - with_watch_providers=with_watch_providers, - vote_average=vote_average, - vote_count=vote_count, - release_date=release_date, - page=page) + movies = await TmdbChain().async_tmdb_discover(mtype=MediaType.MOVIE, + sort_by=sort_by, + with_genres=with_genres, + with_original_language=with_original_language, + with_keywords=with_keywords, + with_watch_providers=with_watch_providers, + 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 [] @router.get("/tmdb_tvs", summary="探索TMDB剧集", response_model=List[schemas.MediaInfo]) -def tmdb_tvs(sort_by: Optional[str] = "popularity.desc", - with_genres: Optional[str] = "", - with_original_language: Optional[str] = "", - with_keywords: Optional[str] = "", - with_watch_providers: Optional[str] = "", - vote_average: Optional[float] = 0.0, - vote_count: Optional[int] = 0, - release_date: Optional[str] = "", - page: Optional[int] = 1, - _: schemas.TokenPayload = Depends(verify_token)) -> Any: +async def tmdb_tvs(sort_by: Optional[str] = "popularity.desc", + with_genres: Optional[str] = "", + with_original_language: Optional[str] = "", + with_keywords: Optional[str] = "", + with_watch_providers: Optional[str] = "", + vote_average: Optional[float] = 0.0, + vote_count: Optional[int] = 0, + release_date: Optional[str] = "", + page: Optional[int] = 1, + _: schemas.TokenPayload = Depends(verify_token)) -> Any: """ 浏览TMDB剧集信息 """ - tvs = TmdbChain().tmdb_discover(mtype=MediaType.TV, - sort_by=sort_by, - with_genres=with_genres, - with_original_language=with_original_language, - with_keywords=with_keywords, - with_watch_providers=with_watch_providers, - vote_average=vote_average, - vote_count=vote_count, - release_date=release_date, - page=page) + tvs = await TmdbChain().async_tmdb_discover(mtype=MediaType.TV, + sort_by=sort_by, + with_genres=with_genres, + with_original_language=with_original_language, + with_keywords=with_keywords, + with_watch_providers=with_watch_providers, + 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 []