mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-06-03 14:39:56 +08:00
feat(transfer): 增加手动整理预览模式(preview mode)
- ManualTransferItem/TransferTask 增加 preview 字段,支持同一接口双模式 - /api/v1/transfer/manual 透传 preview,预览时返回结构化结果不落盘 - ChainBase.transfer 增加 preview 参数并透传到 run_module - TransferChain.do_transfer 预览分支复用完整命名/覆盖判定逻辑(dry-run) - TransferChain.do_transfer 预览结束后显式 finish_task/fail_task,避免任务残留 running 状态导致重复预览失败 - TransHandler.transfer_media 预览分支跳过实际 copy/move/link/delete,仅返回目标路径 - FileManagerModule.transfer 透传 preview 参数 - 修复 /manual 失败分支 dict 类型导致 Response.message 校验错误 - 兼容性:preview 字段有默认值,旧客户端不传参时行为不变
This commit is contained in:
@@ -113,7 +113,7 @@ def manual_transfer(transer_item: ManualTransferItem,
|
||||
# 源路径
|
||||
src_fileitem = FileItem(**history.src_fileitem)
|
||||
# 目的路径
|
||||
if history.dest_fileitem:
|
||||
if history.dest_fileitem and not transer_item.preview:
|
||||
# 删除旧的已整理文件
|
||||
dest_fileitem = FileItem(**history.dest_fileitem)
|
||||
state = StorageChain().delete_media_file(dest_fileitem)
|
||||
@@ -181,14 +181,23 @@ def manual_transfer(transer_item: ManualTransferItem,
|
||||
force=force,
|
||||
background=background,
|
||||
downloader=downloader,
|
||||
download_hash=download_hash
|
||||
download_hash=download_hash,
|
||||
preview=transer_item.preview,
|
||||
)
|
||||
# 失败
|
||||
if not state:
|
||||
if isinstance(errormsg, list):
|
||||
errormsg = f"整理完成,{len(errormsg)} 个文件转移失败!"
|
||||
if isinstance(errormsg, dict):
|
||||
return schemas.Response(
|
||||
success=True,
|
||||
message=errormsg.get("message"),
|
||||
data=errormsg,
|
||||
)
|
||||
return schemas.Response(success=False, message=errormsg)
|
||||
# 成功
|
||||
if transer_item.preview:
|
||||
return schemas.Response(success=True, data=errormsg or {})
|
||||
return schemas.Response(success=True)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user