fix: use original name for media recognize share

This commit is contained in:
jxxghp
2026-05-08 20:36:33 +08:00
parent a59afe4cc9
commit 64b4de3900
6 changed files with 65 additions and 10 deletions

View File

@@ -13,6 +13,7 @@ sys.modules.setdefault("psutil", ModuleType("psutil"))
from app.chain import ChainBase
from app.core.context import MediaInfo
from app.core.meta import MetaBase
from app.helper.recognize import MediaRecognizeShareHelper
from app.schemas.types import MediaType
@@ -86,7 +87,7 @@ class TestMediaRecognizeShare(unittest.TestCase):
second_call = run_module.call_args_list[1]
self.assertEqual(second_call.kwargs["tmdbid"], 200)
self.assertEqual(second_call.kwargs["mtype"], MediaType.TV)
self.assertEqual(meta.begin_season, 1)
self.assertIsNone(meta.begin_season)
def test_async_query_shared_result_when_local_recognize_failed(self):
"""
@@ -125,7 +126,30 @@ class TestMediaRecognizeShare(unittest.TestCase):
self.assertIs(result, shared_media)
self.assertEqual(async_run_module.await_count, 2)
query_mock.assert_awaited_once_with(meta=meta, mtype=None)
self.assertEqual(meta.begin_season, 2)
self.assertIsNone(meta.begin_season)
def test_query_and_report_prefer_original_name_keyword(self):
"""
查询和上报共享识别时应优先使用未应用识别词的识别名称
"""
helper = MediaRecognizeShareHelper()
meta = self._build_meta("应用识别词后的名称", MediaType.TV)
meta.original_name = "未应用识别词的名称"
meta.year = "2024"
meta.begin_season = 1
mediainfo = MediaInfo(
title="测试剧集",
year="2024",
tmdb_id=400,
type=MediaType.TV,
season=1,
)
query_params = helper._build_query_params(meta=meta)
report_payload = helper._build_report_payload(meta=meta, mediainfo=mediainfo)
self.assertEqual(query_params["keyword"], "未应用识别词的名称")
self.assertEqual(report_payload["keyword"], "未应用识别词的名称")
if __name__ == "__main__":

View File

@@ -117,6 +117,13 @@ class MetaInfoTest(TestCase):
if meta.apply_words:
self.assertIn("替换词 => 新词", meta.apply_words)
def test_metainfo_preserves_original_name_when_custom_words_applied(self):
"""测试应用识别词后仍保留未应用识别词时识别出的名称"""
custom_words = ["测试替换 => "]
meta = MetaInfo(title="电影测试替换名称 (2024)", custom_words=custom_words)
self.assertEqual(meta.name, "电影名称")
self.assertEqual(meta.original_name, "电影测试替换名称")
def test_metainfopath_auxiliary_chinese_stem_uses_parent_title(self):
"""
文件名为简英双语/特效等压制标签、父目录为拉丁片名时,应合并父目录标题与年份。
@@ -127,6 +134,7 @@ class MetaInfoTest(TestCase):
meta = MetaInfoPath(path)
self.assertEqual(meta.en_name, "Marty Supreme")
self.assertEqual(meta.year, "2025")
self.assertEqual(meta.original_name, "Marty Supreme")
def test_metainfopath_chinese_parent_not_replaced_by_auxiliary_rule(self):
"""