From a5285238810a225550bb4f39cddff77b6484a77a Mon Sep 17 00:00:00 2001 From: yanjunpu <541726449@qq.com> Date: Tue, 8 Sep 2026 15:15:14 +0800 Subject: [PATCH] fix(transfer): keep selected batches internal --- app/chain/transfer/history.py | 20 ++++++++++++++++---- app/chain/transfer/workflow.py | 2 -- tests/test_transfer_music_album_selection.py | 4 ++-- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/app/chain/transfer/history.py b/app/chain/transfer/history.py index af14c0383..64daeaef5 100644 --- a/app/chain/transfer/history.py +++ b/app/chain/transfer/history.py @@ -228,7 +228,7 @@ class TransferHistoryOwner(_TransferOwnerBase): self.obtain_images(mediainfo=mediainfo) # 开始整理 - state, errmsg = self.do_transfer( + transfer_kwargs = dict( fileitem=fileitem, target_storage=target_storage, target_path=target_path, @@ -254,8 +254,14 @@ class TransferHistoryOwner(_TransferOwnerBase): cleanup_dest_fileitem=cleanup_dest_fileitem, music_release_regions=music_release_regions, music_release_scripts=music_release_scripts, - selected_fileitems=selected_fileitems, ) + if selected_fileitems is not None: + state, errmsg = self._execute_transfer( + **transfer_kwargs, + selected_fileitems=selected_fileitems, + ) + else: + state, errmsg = self.do_transfer(**transfer_kwargs) if not state: return False, errmsg @@ -263,7 +269,7 @@ class TransferHistoryOwner(_TransferOwnerBase): return True, errmsg if preview else "" else: # 没有输入媒体ID时,按文件识别 - state, errmsg = self.do_transfer( + transfer_kwargs = dict( fileitem=fileitem, target_storage=target_storage, target_path=target_path, @@ -287,8 +293,14 @@ class TransferHistoryOwner(_TransferOwnerBase): cleanup_dest_fileitem=cleanup_dest_fileitem, music_release_regions=music_release_regions, music_release_scripts=music_release_scripts, - selected_fileitems=selected_fileitems, ) + if selected_fileitems is not None: + state, errmsg = self._execute_transfer( + **transfer_kwargs, + selected_fileitems=selected_fileitems, + ) + else: + state, errmsg = self.do_transfer(**transfer_kwargs) return state, errmsg def send_transfer_message( diff --git a/app/chain/transfer/workflow.py b/app/chain/transfer/workflow.py index 9f09c8bfe..6815715e3 100644 --- a/app/chain/transfer/workflow.py +++ b/app/chain/transfer/workflow.py @@ -373,7 +373,6 @@ class TransferWorkflowOwner(_TransferOwnerBase): reorganize: Optional[bool] = False, music_release_regions: Optional[list[str]] = None, music_release_scripts: Optional[list[str]] = None, - selected_fileitems: Optional[list[FileItem]] = None, ) -> Tuple[bool, Union[str, dict]]: """ 兼容公开整理入口,委托给内部批次执行阶段。 @@ -410,7 +409,6 @@ class TransferWorkflowOwner(_TransferOwnerBase): reorganize=reorganize, music_release_regions=music_release_regions, music_release_scripts=music_release_scripts, - selected_fileitems=selected_fileitems, ) def _execute_transfer(self, *args: Any, **kwargs: Any) -> Tuple[bool, Union[str, dict]]: diff --git a/tests/test_transfer_music_album_selection.py b/tests/test_transfer_music_album_selection.py index b90189b1f..c4779bf61 100644 --- a/tests/test_transfer_music_album_selection.py +++ b/tests/test_transfer_music_album_selection.py @@ -184,7 +184,7 @@ def test_selected_music_fileitems_keep_album_batch_context(tmp_path, monkeypatch monkeypatch.setattr(chain, "_TransferChain__handle_transfer", handle_transfer) - state, message = TransferChain.do_transfer( + state, message = TransferChain._execute_transfer( chain, fileitem=fileitems[0], selected_fileitems=fileitems, @@ -243,7 +243,7 @@ def test_automatic_music_fileitems_receive_album_identity_and_category(tmp_path, monkeypatch.setattr(chain, "_TransferChain__handle_transfer", handle_transfer) - state, message = TransferChain.do_transfer( + state, message = TransferChain._execute_transfer( chain, fileitem=fileitems[0], selected_fileitems=fileitems,