Files
Mofox-Core/docs/plugins/api/person-api.md
雅诺狐 2d4745cd58 初始化
2025-08-11 19:34:18 +08:00

119 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 个人信息API
个人信息API模块提供用户信息查询和管理功能让插件能够获取和使用用户的相关信息。
## 导入方式
```python
from src.plugin_system.apis import person_api
# 或者
from src.plugin_system import person_api
```
## 主要功能
### 1. Person ID 获取
```python
def get_person_id(platform: str, user_id: int) -> str:
```
根据平台和用户ID获取person_id
**Args:**
- `platform`:平台名称,如 "qq", "telegram" 等
- `user_id`用户ID
**Returns:**
- `str`唯一的person_idMD5哈希值
#### 示例
```python
person_id = person_api.get_person_id("qq", 123456)
```
### 2. 用户信息查询
```python
async def get_person_value(person_id: str, field_name: str, default: Any = None) -> Any:
```
查询单个用户信息字段值
**Args:**
- `person_id`用户的唯一标识ID
- `field_name`:要获取的字段名
- `default`:字段值不存在时的默认值
**Returns:**
- `Any`:字段值或默认值
#### 示例
```python
nickname = await person_api.get_person_value(person_id, "nickname", "未知用户")
impression = await person_api.get_person_value(person_id, "impression")
```
### 3. 批量用户信息查询
```python
async def get_person_values(person_id: str, field_names: list, default_dict: Optional[dict] = None) -> dict:
```
批量获取用户信息字段值
**Args:**
- `person_id`用户的唯一标识ID
- `field_names`:要获取的字段名列表
- `default_dict`:默认值字典,键为字段名,值为默认值
**Returns:**
- `dict`:字段名到值的映射字典
#### 示例
```python
values = await person_api.get_person_values(
person_id,
["nickname", "impression", "know_times"],
{"nickname": "未知用户", "know_times": 0}
)
```
### 4. 判断用户是否已知
```python
async def is_person_known(platform: str, user_id: int) -> bool:
```
判断是否认识某个用户
**Args:**
- `platform`:平台名称
- `user_id`用户ID
**Returns:**
- `bool`:是否认识该用户
### 5. 根据用户名获取Person ID
```python
def get_person_id_by_name(person_name: str) -> str:
```
根据用户名获取person_id
**Args:**
- `person_name`:用户名
**Returns:**
- `str`person_id如果未找到返回空字符串
## 常用字段说明
### 基础信息字段
- `nickname`:用户昵称
- `platform`:平台信息
- `user_id`用户ID
### 关系信息字段
- `impression`:对用户的印象
- `points`: 用户特征点
其他字段可以参考`PersonInfo`类的属性(位于`src.common.database.database_model`
## 注意事项
1. **异步操作**:部分查询函数都是异步的,需要使用`await`
2. **性能考虑**:批量查询优于单个查询
3. **隐私保护**:确保用户信息的使用符合隐私政策
4. **数据一致性**person_id是用户的唯一标识应妥善保存和使用