feat: TransferRename 事件增加 source_path 源文件路径参数

在智能重命名事件中传递源文件路径,便于插件在重命名时获取待整理文件的原始路径信息。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
DDSRem
2026-04-03 02:20:35 +08:00
committed by jxxghp
parent 388afa8d3c
commit 60ac901c6c
2 changed files with 11 additions and 4 deletions

View File

@@ -129,7 +129,8 @@ class TransHandler:
path=target_path,
template_string=rename_format,
rename_dict=self.get_naming_dict(meta=in_meta,
mediainfo=mediainfo)
mediainfo=mediainfo),
source_path=fileitem.path
)
new_path = DirectoryHelper.get_media_root_path(
rename_format, rename_path=new_path
@@ -218,7 +219,8 @@ class TransHandler:
mediainfo=mediainfo,
episodes_info=episodes_info,
file_ext=f".{fileitem.extension}"
)
),
source_path=fileitem.path
)
# 针对字幕文件,文件名中补充额外标识信息
@@ -814,12 +816,14 @@ class TransHandler:
return True
@staticmethod
def get_rename_path(template_string: str, rename_dict: dict, path: Path = None) -> Path:
def get_rename_path(template_string: str, rename_dict: dict,
path: Path = None, source_path: str = None) -> Path:
"""
生成重命名后的完整路径,支持智能重命名事件
:param template_string: Jinja2 模板字符串
:param rename_dict: 渲染上下文,用于替换模板中的变量
:param path: 可选的基础路径,如果提供,将在其基础上拼接生成的路径
:param source_path: 源文件路径,即待整理的文件路径
:return: 生成的完整路径
"""
# 创建jinja2模板对象
@@ -833,7 +837,8 @@ class TransHandler:
template_string=template_string,
rename_dict=rename_dict,
render_str=render_str,
path=path
path=path,
source_path=source_path
)
event = eventmanager.send_event(ChainEventType.TransferRename, event_data)
# 检查事件返回的结果

View File

@@ -168,6 +168,7 @@ class TransferRenameEventData(ChainEventData):
rename_dict (dict): 渲染上下文
render_str (str): 渲染生成的字符串
path (Optional[Path]): 当前文件的目标路径
source_path (Optional[str]): 源文件路径,即待整理的文件路径
# 输出参数
updated (bool): 是否已更新,默认值为 False
@@ -179,6 +180,7 @@ class TransferRenameEventData(ChainEventData):
rename_dict: Dict[str, Any] = Field(..., description="渲染上下文")
path: Optional[Path] = Field(None, description="文件的目标路径")
render_str: str = Field(..., description="渲染生成的字符串")
source_path: Optional[str] = Field(None, description="源文件路径,即待整理的文件路径")
# 输出参数
updated: bool = Field(default=False, description="是否已更新")