105 lines
2.4 KiB
Markdown
105 lines
2.4 KiB
Markdown
# 插件管理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]` - 成功加载的插件数量和失败的插件数量。 |