# 插件管理API 插件管理API模块提供了对插件的加载、卸载、重新加载以及目录管理功能。 ## 导入方式 ```python from src.plugin_system.apis import plugin_manage_api # 或者 from src.plugin_system import plugin_manage_api ``` ## 功能概述 插件管理API主要提供以下功能: - **插件查询** - 列出当前加载的插件或已注册的插件。 - **插件管理** - 加载、卸载、重新加载插件。 - **插件目录管理** - 添加插件目录并重新扫描。 ## 主要功能 ### 1. 列出当前加载的插件 ```python def list_loaded_plugins() -> List[str]: ``` 列出所有当前加载的插件。 **Returns:** - `List[str]` - 当前加载的插件名称列表。 ### 2. 列出所有已注册的插件 ```python def list_registered_plugins() -> List[str]: ``` 列出所有已注册的插件。 **Returns:** - `List[str]` - 已注册的插件名称列表。 ### 3. 获取插件路径 ```python def get_plugin_path(plugin_name: str) -> str: ``` 获取指定插件的路径。 **Args:** - `plugin_name` (str): 要查询的插件名称。 **Returns:** - `str` - 插件的路径,如果插件不存在则 raise ValueError。 ### 4. 卸载指定的插件 ```python async def remove_plugin(plugin_name: str) -> bool: ``` 卸载指定的插件。 **Args:** - `plugin_name` (str): 要卸载的插件名称。 **Returns:** - `bool` - 卸载是否成功。 ### 5. 重新加载指定的插件 ```python async def reload_plugin(plugin_name: str) -> bool: ``` 重新加载指定的插件。 **Args:** - `plugin_name` (str): 要重新加载的插件名称。 **Returns:** - `bool` - 重新加载是否成功。 ### 6. 加载指定的插件 ```python def load_plugin(plugin_name: str) -> Tuple[bool, int]: ``` 加载指定的插件。 **Args:** - `plugin_name` (str): 要加载的插件名称。 **Returns:** - `Tuple[bool, int]` - 加载是否成功,成功或失败的个数。 ### 7. 添加插件目录 ```python def add_plugin_directory(plugin_directory: str) -> bool: ``` 添加插件目录。 **Args:** - `plugin_directory` (str): 要添加的插件目录路径。 **Returns:** - `bool` - 添加是否成功。 ### 8. 重新扫描插件目录 ```python def rescan_plugin_directory() -> Tuple[int, int]: ``` 重新扫描插件目录,加载新插件。 **Returns:** - `Tuple[int, int]` - 成功加载的插件数量和失败的插件数量。