fix: improve manual transfer recognition preview

This commit is contained in:
jxxghp
2026-05-27 11:01:27 +08:00
parent 5b6b4c9744
commit db3ad91408
4 changed files with 36 additions and 1 deletions

View File

@@ -222,6 +222,9 @@ def manual_transfer(
explicit_selected_files = bool(transer_item.fileitems)
def _build_failure_preview_item(file_item: FileItem, message: str) -> dict:
"""
构造手动整理预览失败项。
"""
return {
"source": file_item.path if file_item else None,
"target": None,
@@ -234,9 +237,16 @@ def manual_transfer(
"episode": None,
"episode_end": None,
"part": None,
"org_string": None,
"apply_words": [],
"resource_team": None,
"customization": None,
}
def _merge_messages(messages: List[str]) -> str:
"""
合并手动整理批量预览提示信息。
"""
valid_messages = [msg for msg in messages if msg]
if not valid_messages:
return ""

View File

@@ -2792,6 +2792,10 @@ class TransferChain(ChainBase, ConfigReloadMixin, metaclass=Singleton):
"episode": item_meta.begin_episode if item_meta else None,
"episode_end": item_meta.end_episode if item_meta else None,
"part": item_meta.part if item_meta else None,
"org_string": item_meta.org_string if item_meta else None,
"apply_words": item_meta.apply_words if item_meta else [],
"resource_team": item_meta.resource_team if item_meta else None,
"customization": item_meta.customization if item_meta else None,
}
)
return transferinfo.success, transferinfo.message
@@ -2867,6 +2871,10 @@ class TransferChain(ChainBase, ConfigReloadMixin, metaclass=Singleton):
"episode": transfer_task.meta.begin_episode if transfer_task.meta else None,
"episode_end": transfer_task.meta.end_episode if transfer_task.meta else None,
"part": transfer_task.meta.part if transfer_task.meta else None,
"org_string": transfer_task.meta.org_string if transfer_task.meta else None,
"apply_words": transfer_task.meta.apply_words if transfer_task.meta else [],
"resource_team": transfer_task.meta.resource_team if transfer_task.meta else None,
"customization": transfer_task.meta.customization if transfer_task.meta else None,
}
)
fail_num += 1

View File

@@ -1,5 +1,5 @@
Cython~=3.1.2
moviepilot-rust~=0.1.5
moviepilot-rust~=0.1.6
pydantic>=2.0.0,<3.0.0
pydantic-settings>=2.0.0,<3.0.0
SQLAlchemy~=2.0.41

View File

@@ -1,4 +1,6 @@
from unittest import TestCase
from unittest.mock import patch
from tests.cases.groups import release_group_cases
from app.core.meta.releasegroup import ReleaseGroupsMatcher
@@ -12,3 +14,18 @@ class MetaInfoTest(TestCase):
print(f"\tmatch release group {release_group}, should be: {item.get('group')}")
self.assertEqual(item.get("group"), release_group)
print(f"完成 {info.get('domain')}")
def test_custom_release_group_matches_multiple_adjacent_groups(self):
"""自定义制作组共用分隔符时,应完整保留所有命中项。"""
matcher = ReleaseGroupsMatcher()
with patch.object(
matcher.systemconfig,
"get",
return_value=["VCB-Studio|hyakuhuyu|DMG|GM-Team"],
):
release_group = matcher.match(
"[DMG&VCB-Studio] Youkoso Jitsuryoku Shijou Shugi no Kyoushitsu e"
)
self.assertEqual("DMG@VCB-Studio", release_group)