From 76659f8837c009bee39490fd4a3f5249803d0a53 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Mon, 19 May 2025 12:51:34 +0800 Subject: [PATCH] fix #4308 --- app/chain/subscribe.py | 35 ++++++++++------------------------- 1 file changed, 10 insertions(+), 25 deletions(-) diff --git a/app/chain/subscribe.py b/app/chain/subscribe.py index 63d97a02..8ce9f472 100644 --- a/app/chain/subscribe.py +++ b/app/chain/subscribe.py @@ -562,7 +562,7 @@ class SubscribeChain(ChainBase, metaclass=Singleton): # 所有订阅 subscribes = self.subscribeoper.list(self.get_states_for_search('R')) - # 预识别所有未识别的种子,并标记是否已识别过 + # 预识别所有未识别的种子 processed_torrents = {} for domain, contexts in torrents.items(): processed_torrents[domain] = [] @@ -571,10 +571,6 @@ class SubscribeChain(ChainBase, metaclass=Singleton): _context = copy.deepcopy(context) torrent_meta = _context.meta_info torrent_mediainfo = _context.media_info - torrent_info = _context.torrent_info - - # 标记是否已经尝试过识别(初始为False) - _context._recognized = False # 如果种子未识别,尝试识别 if not torrent_mediainfo or (not torrent_mediainfo.tmdb_id and not torrent_mediainfo.douban_id): @@ -582,9 +578,7 @@ class SubscribeChain(ChainBase, metaclass=Singleton): if torrent_mediainfo: # 更新种子缓存 _context.media_info = torrent_mediainfo - # 标记为已尝试识别 - _context._recognized = True - + # 添加已预处理 processed_torrents[domain].append(_context) # 遍历订阅 @@ -664,22 +658,12 @@ class SubscribeChain(ChainBase, metaclass=Singleton): custom_words=custom_words_list) # 更新元数据缓存 context.meta_info = torrent_meta - # 媒体信息需要重新识别 - need_reprocess = None - # 重置识别标记 - _context._recognized = False - - # 重新识别媒体信息(仅当有自定义识别词或尚未尝试识别时才需要) - if need_reprocess or (not _context._recognized and - (not torrent_mediainfo or - (not torrent_mediainfo.tmdb_id and not torrent_mediainfo.douban_id))): - torrent_mediainfo = self.recognize_media(meta=torrent_meta, - episode_group=subscribe.episode_group) - if torrent_mediainfo: - # 更新种子缓存 - _context.media_info = torrent_mediainfo - # 标记为已尝试识别 - _context._recognized = True + # 重新识别媒体信息 + torrent_mediainfo = self.recognize_media(meta=torrent_meta, + episode_group=subscribe.episode_group) + if torrent_mediainfo: + # 更新种子缓存 + context.media_info = torrent_mediainfo # 如果仍然没有识别到媒体信息,尝试标题匹配 if not torrent_mediainfo or (not torrent_mediainfo.tmdb_id and not torrent_mediainfo.douban_id): @@ -692,7 +676,8 @@ class SubscribeChain(ChainBase, metaclass=Singleton): logger.info( f'{mediainfo.title_year} 通过标题匹配到可选资源:{torrent_info.site_name} - {torrent_info.title}') torrent_mediainfo = mediainfo - _context.media_info = torrent_mediainfo + # 更新种子缓存 + context.media_info = mediainfo else: continue