feat:使用名称、年份兜底转换

This commit is contained in:
jxxghp
2025-02-06 20:31:37 +08:00
parent f9bddcb406
commit e24b3ed07a
3 changed files with 32 additions and 3 deletions
+9 -1
View File
@@ -134,7 +134,7 @@ def category(_: schemas.TokenPayload = Depends(verify_token)) -> Any:
@router.get("/{mediaid}", summary="查询媒体详情", response_model=schemas.MediaInfo) @router.get("/{mediaid}", summary="查询媒体详情", response_model=schemas.MediaInfo)
def media_info(mediaid: str, type_name: str, def media_info(mediaid: str, type_name: str, title: str = None, year: int = None,
_: schemas.TokenPayload = Depends(verify_token)) -> Any: _: schemas.TokenPayload = Depends(verify_token)) -> Any:
""" """
根据媒体ID查询themoviedb或豆瓣媒体信息,type_name: 电影/电视剧 根据媒体ID查询themoviedb或豆瓣媒体信息,type_name: 电影/电视剧
@@ -163,6 +163,14 @@ def media_info(mediaid: str, type_name: str,
mediainfo = MediaChain().recognize_media(tmdbid=new_id, mtype=mtype) mediainfo = MediaChain().recognize_media(tmdbid=new_id, mtype=mtype)
elif event_data.convert_type == "douban": elif event_data.convert_type == "douban":
mediainfo = MediaChain().recognize_media(doubanid=new_id, mtype=mtype) mediainfo = MediaChain().recognize_media(doubanid=new_id, mtype=mtype)
elif title:
# 使用名称识别兜底
meta = MetaInfo(title)
if year:
meta.year = year
if mtype:
meta.type = mtype
mediainfo = MediaChain().recognize_media(meta=meta)
# 识别 # 识别
if mediainfo: if mediainfo:
MediaChain().obtain_images(mediainfo) MediaChain().obtain_images(mediainfo)
+22 -1
View File
@@ -7,6 +7,7 @@ from app.chain.media import MediaChain
from app.chain.search import SearchChain from app.chain.search import SearchChain
from app.core.config import settings from app.core.config import settings
from app.core.event import eventmanager from app.core.event import eventmanager
from app.core.metainfo import MetaInfo
from app.core.security import verify_token from app.core.security import verify_token
from app.schemas import MediaRecognizeConvertEventData from app.schemas import MediaRecognizeConvertEventData
from app.schemas.types import MediaType, ChainEventType from app.schemas.types import MediaType, ChainEventType
@@ -27,6 +28,8 @@ def search_latest(_: schemas.TokenPayload = Depends(verify_token)) -> Any:
def search_by_id(mediaid: str, def search_by_id(mediaid: str,
mtype: str = None, mtype: str = None,
area: str = "title", area: str = "title",
title: str = None,
year: int = None,
season: str = None, season: str = None,
_: schemas.TokenPayload = Depends(verify_token)) -> Any: _: schemas.TokenPayload = Depends(verify_token)) -> Any:
""" """
@@ -101,7 +104,25 @@ def search_by_id(mediaid: str,
torrents = SearchChain().search_by_id(doubanid=search_id, torrents = SearchChain().search_by_id(doubanid=search_id,
mtype=mtype, area=area, season=season) mtype=mtype, area=area, season=season)
else: else:
return schemas.Response(success=False, message="未知的媒体ID") if not title:
return schemas.Response(success=False, message="未知的媒体ID")
# 使用名称识别兜底
meta = MetaInfo(title)
if year:
meta.year = year
if mtype:
meta.type = mtype
if season:
meta.type = MediaType.TV
meta.begin_season = season
mediainfo = MediaChain().recognize_media(meta=meta)
if mediainfo:
if settings.RECOGNIZE_SOURCE == "themoviedb":
torrents = SearchChain().search_by_id(tmdbid=mediainfo.tmdb_id,
mtype=mtype, area=area, season=season)
else:
torrents = SearchChain().search_by_id(doubanid=mediainfo.douban_id,
mtype=mtype, area=area, season=season)
# 返回搜索结果 # 返回搜索结果
if not torrents: if not torrents:
return schemas.Response(success=False, message="未搜索到任何资源") return schemas.Response(success=False, message="未搜索到任何资源")
+1 -1
View File
@@ -134,7 +134,7 @@ class SubscribeChain(ChainBase, metaclass=Singleton):
# 使用名称识别兜底 # 使用名称识别兜底
if not mediainfo: if not mediainfo:
mediainfo = self.recognize_media(meta=metainfo, mtype=mtype) mediainfo = self.recognize_media(meta=metainfo)
# 识别失败 # 识别失败
if not mediainfo: if not mediainfo: