This commit is contained in:
jxxghp 2023-07-06 22:16:33 +08:00
parent 2ad62a468c
commit c1b8183373
3 changed files with 27 additions and 8 deletions

View File

@ -38,7 +38,10 @@ async def recognize_doubanid(doubanid: str,
"""
# 识别媒体信息
context = DoubanChain().recognize_by_doubanid(doubanid=doubanid)
return context.to_dict()
if context:
return context.to_dict()
else:
return schemas.Context()
@router.get("/movies", summary="豆瓣电影", response_model=List[schemas.MediaInfo])

View File

@ -1,9 +1,11 @@
from typing import Any, List
from fastapi import APIRouter, Depends
from fastapi import APIRouter, Depends, HTTPException
from app import schemas
from app.chain.douban import DoubanChain
from app.chain.download import DownloadChain
from app.chain.media import MediaChain
from app.core.context import MediaInfo
from app.core.metainfo import MetaInfo
from app.core.security import verify_token
@ -21,18 +23,30 @@ async def read_downloading(
return DownloadChain().downloading()
@router.post("/notexists", summary="查询电视剧缺失的剧集", response_model=List[NotExistMediaInfo])
@router.post("/notexists", summary="查询缺失媒体信息", response_model=List[NotExistMediaInfo])
async def exists(media_in: schemas.MediaInfo,
_: schemas.TokenPayload = Depends(verify_token)) -> Any:
"""
查询已存在的媒体信息
查询缺失媒体信息
"""
# 媒体信息
mediainfo = MediaInfo()
mediainfo.from_dict(media_in.dict())
# 元数据
meta = MetaInfo(title=mediainfo.title)
if media_in.tmdb_id:
mediainfo.from_dict(media_in.dict())
meta = MetaInfo(title=mediainfo.title)
elif media_in.douban_id:
context = DoubanChain().recognize_by_doubanid(doubanid=media_in.douban_id)
if context:
mediainfo = context.media_info
meta = context.meta_info
else:
context = MediaChain().recognize_by_title(title=f"{media_in.title} {media_in.year}")
if context:
mediainfo = context.media_info
meta = context.meta_info
# 查询缺失信息
if not mediainfo.tmdb_id:
raise HTTPException(status_code=404, detail="媒体信息不存在")
exist_flag, no_exists = DownloadChain().get_no_exists_info(meta=meta, mediainfo=mediainfo)
if mediainfo.type == MediaType.MOVIE:
# 电影已存在时返回空列表,存在时返回空对像列表

View File

@ -18,7 +18,9 @@ async def recognize(title: str,
"""
# 识别媒体信息
context = MediaChain().recognize_by_title(title=title, subtitle=subtitle)
return context.to_dict()
if context:
return context.to_dict()
return schemas.Context()
@router.get("/search", summary="搜索媒体信息", response_model=List[schemas.MediaInfo])