From e160a745a7c59306cd318c43bd927b71aa0b3728 Mon Sep 17 00:00:00 2001 From: InfinityPacer <160988576+InfinityPacer@users.noreply.github.com> Date: Wed, 27 Nov 2024 00:49:37 +0800 Subject: [PATCH 1/2] fix(event): correct visualize_handlers --- app/core/event.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/app/core/event.py b/app/core/event.py index f61ac6f6..7bd66add 100644 --- a/app/core/event.py +++ b/app/core/event.py @@ -233,23 +233,29 @@ class EventManager(metaclass=Singleton): 可视化所有事件处理器,包括是否被禁用的状态 :return: 处理器列表,包含事件类型、处理器标识符、优先级(如果有)和状态 """ + + def parse_handler_data(data): + """ + 解析处理器数据,判断是否包含优先级 + :param data: 订阅者数据,可能是元组或单一值 + :return: (priority, handler),若没有优先级则返回 (None, handler) + """ + if isinstance(data, tuple) and len(data) == 2: + return data + return None, data + handler_info = [] # 统一处理广播事件和链式事件 for event_type, subscribers in {**self.__broadcast_subscribers, **self.__chain_subscribers}.items(): - for handler_data in subscribers: - if isinstance(subscribers, dict): - priority, handler = handler_data - else: - priority = None - handler = handler_data - # 获取处理器的唯一标识符 - handler_id = self.__get_handler_identifier(handler) + for handler_identifier, handler_data in subscribers.items(): + # 解析优先级和处理器 + priority, handler = parse_handler_data(handler_data) # 检查处理器的启用状态 status = "enabled" if self.__is_handler_enabled(handler) else "disabled" # 构建处理器信息字典 handler_dict = { "event_type": event_type.value, - "handler_identifier": handler_id, + "handler_identifier": handler_identifier, "status": status } if priority is not None: From a98de604a146b4f9a010703faa9d4ff59dde8e49 Mon Sep 17 00:00:00 2001 From: InfinityPacer <160988576+InfinityPacer@users.noreply.github.com> Date: Wed, 27 Nov 2024 00:50:34 +0800 Subject: [PATCH 2/2] refactor(event): rename SmartRename to TransferRename --- app/modules/filemanager/__init__.py | 8 ++++---- app/schemas/event.py | 4 ++-- app/schemas/types.py | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/modules/filemanager/__init__.py b/app/modules/filemanager/__init__.py index 0d4686c2..1709818a 100644 --- a/app/modules/filemanager/__init__.py +++ b/app/modules/filemanager/__init__.py @@ -17,7 +17,7 @@ from app.log import logger from app.modules import _ModuleBase from app.modules.filemanager.storages import StorageBase from app.schemas import TransferInfo, ExistMediaInfo, TmdbEpisode, TransferDirectoryConf, FileItem, StorageUsage -from app.schemas.event import SmartRenameEventData +from app.schemas.event import TransferRenameEventData from app.schemas.types import MediaType, ModuleType, ChainEventType from app.utils.system import SystemUtils @@ -1213,16 +1213,16 @@ class FileManagerModule(_ModuleBase): logger.debug(f"Initial render string: {render_str}") # 发送智能重命名事件 - event_data = SmartRenameEventData( + event_data = TransferRenameEventData( template_string=template_string, rename_dict=rename_dict, render_str=render_str, path=path ) - event = eventmanager.send_event(ChainEventType.SmartRename, event_data) + event = eventmanager.send_event(ChainEventType.TransferRename, event_data) # 检查事件返回的结果 if event and event.event_data: - event_data: SmartRenameEventData = event.event_data + event_data: TransferRenameEventData = event.event_data if event_data.updated and event_data.updated_str: logger.debug(f"Render string updated by event: " f"{render_str} -> {event_data.updated_str} (source: {event_data.source})") diff --git a/app/schemas/event.py b/app/schemas/event.py index 57142e74..58d77005 100644 --- a/app/schemas/event.py +++ b/app/schemas/event.py @@ -117,9 +117,9 @@ class CommandRegisterEventData(ChainEventData): source: str = Field("未知拦截源", description="拦截源") -class SmartRenameEventData(ChainEventData): +class TransferRenameEventData(ChainEventData): """ - SmartRename 事件的数据模型 + TransferRename 事件的数据模型 Attributes: # 输入参数 diff --git a/app/schemas/types.py b/app/schemas/types.py index dfc2e29c..e77c769b 100644 --- a/app/schemas/types.py +++ b/app/schemas/types.py @@ -68,8 +68,8 @@ class ChainEventType(Enum): AuthIntercept = "auth.intercept" # 命令注册 CommandRegister = "command.register" - # 智能重命名 - SmartRename = "SmartRename" + # 整理重命名 + TransferRename = "transfer.rename" # 系统配置Key字典