perf: optimize media recognition internals

This commit is contained in:
jxxghp
2026-05-15 13:37:36 +08:00
parent b2a18f9ae4
commit 2831eecbeb
9 changed files with 396 additions and 254 deletions
+17 -1
View File
@@ -2,7 +2,7 @@
from pathlib import Path
from unittest import TestCase
from app.core.metainfo import MetaInfo, MetaInfoPath
from app.core.metainfo import MetaInfo, MetaInfoPath, find_metainfo
from tests.cases.meta import meta_cases
@@ -124,6 +124,22 @@ class MetaInfoTest(TestCase):
self.assertEqual(meta.name, "电影名称")
self.assertEqual(meta.original_name, "电影测试替换名称")
def test_custom_words_replace_then_episode_offset(self):
"""测试复杂识别词仍按先替换、后集数偏移的顺序处理"""
custom_words = ["旧名 => 新名 && 第 <> 集 >> EP+1"]
meta = MetaInfo(title="旧名 第03集", custom_words=custom_words)
self.assertEqual(meta.name, "新名")
self.assertEqual(meta.episode, "E04")
self.assertEqual(meta.apply_words, custom_words)
def test_emby_tmdbid_overrides_braced_metainfo_tmdbid(self):
"""
同时存在内嵌元信息和 Emby [tmdbid] 标签时,保持历史上的 [tmdbid] 优先级。
"""
title, metainfo = find_metainfo("Movie {[tmdbid=111;type=movies]} [tmdbid=222]")
self.assertEqual(metainfo["tmdbid"], "222")
self.assertNotIn("[tmdbid=222]", title)
def test_metainfopath_auxiliary_chinese_stem_uses_parent_title(self):
"""
文件名为简英双语/特效等压制标签、父目录为拉丁片名时,应合并父目录标题与年份。