fix: align media recognition fallback and shared reporting

Route title and path lookups through the fallback-aware entrypoints so auxiliary matches can reuse pre-assist keywords without forcing image fetches in lightweight flows. Also reduce noisy agent shutdown logging during cleanup.
This commit is contained in:
jxxghp
2026-05-10 07:54:55 +08:00
parent ee9ea54ab7
commit 1d97f2e043
21 changed files with 505 additions and 111 deletions

View File

@@ -67,7 +67,10 @@ class AddDownloadAction(BaseAction):
if not t.meta_info:
t.meta_info = MetaInfo(title=t.torrent_info.title, subtitle=t.torrent_info.description)
if not t.media_info:
t.media_info = MediaChain().recognize_media(meta=t.meta_info)
t.media_info = MediaChain().recognize_by_meta(
t.meta_info,
obtain_images=False,
)
if not t.media_info:
self._has_error = True
logger.warning(f"{t.torrent_info.title} 未识别到媒体信息,无法下载")

View File

@@ -2,7 +2,8 @@ from typing import Optional
from pydantic import Field
from app.workflow.actions import BaseAction, ActionChain
from app.workflow.actions import BaseAction
from app.chain.media import MediaChain
from app.core.config import settings, global_vars
from app.core.context import Context
from app.core.metainfo import MetaInfo
@@ -98,7 +99,10 @@ class FetchRssAction(BaseAction):
meta = MetaInfo(title=torrentinfo.title, subtitle=torrentinfo.description)
mediainfo = None
if params.match_media:
mediainfo = ActionChain().recognize_media(meta)
mediainfo = MediaChain().recognize_by_meta(
meta,
obtain_images=False,
)
if not mediainfo:
logger.warning(f"{torrentinfo.title} 未识别到媒体信息")
continue

View File

@@ -72,7 +72,10 @@ class FetchTorrentsAction(BaseAction):
continue
# 识别媒体信息
if params.match_media:
torrent.media_info = searchchain.recognize_media(torrent.meta_info)
torrent.media_info = searchchain.recognize_by_meta(
torrent.meta_info,
obtain_images=False,
)
if not torrent.media_info:
logger.warning(f"{torrent.torrent_info.title} 未识别到媒体信息")
continue

View File

@@ -65,7 +65,10 @@ class ScrapeFileAction(BaseAction):
continue
meta = MetaInfoPath(Path(fileitem.path))
mediachain = MediaChain()
mediainfo = mediachain.recognize_media(meta)
mediainfo = mediachain.recognize_by_meta(
meta,
obtain_images=False,
)
if not mediainfo:
_failed_count += 1
logger.info(f"{fileitem.path} 未识别到媒体信息,无法刮削")