Skip to content

Commit

Permalink
update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
MeetWq committed Oct 13, 2023
1 parent c7d09a1 commit 92f1c22
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 34 deletions.
97 changes: 64 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,36 +27,6 @@ pip install nonebot_plugin_chatrecorder
- 默认:`True`
- 说明:是否记录机器人自己发出的消息

#### `chatrecorder_record_migration_bot_id`
- 类型:`Optional[str]`
- 默认:`None`
- 说明:在旧版本(0.1.x) 时使用的机器人账号(机器人qq号),用于数据库迁移;若使用过此插件的旧版本则必须配置,数据库迁移完成后可删除;未使用过旧版本可不配置


### 其他说明

插件依赖 [nonebot-plugin-datastore](https://github.com/he0119/nonebot-plugin-datastore) 插件来提供数据库支持

`nonebot-plugin-datastore` 插件默认使用 SQLite 数据库,
消息记录文件会存放在 `nonebot-plugin-datastore` 插件设置的数据目录

> [!NOTE]
>
> 由于在 OneBot V11 适配器中,机器人**发送的消息**中可能存在 base64 形式的图片、语音等,
>
> 为避免消息记录文件体积过大,本插件会将 base64 形式的图片、语音等存成文件,并在消息记录中以文件路径替代。
>
> 这些文件会放置在 `nonebot-plugin-datastore` 插件设置的缓存目录,**建议定期清理**

插件依赖 [nonebot-plugin-session](https://github.com/noneplugin/nonebot-plugin-session) 插件来获取会话相关信息

其中 `id1` 代表“用户级别”的 id,即 `user_id`

`id2` 代表“群组级别”的 id,如对于 `OneBot V11` 适配器,`id2` 代表 `group_id`,对于 `OneBot V12` 适配器中的单级群组,`id2` 代表群组 id,对于 `OneBot V12` 适配器中的两级群组,`id2` 代表 `channel_id`

`id3` 代表“两级群组”的 id,如对于 `OneBot V12` 适配器中的两级群组,`id3` 代表 `guild_id`


### 使用

Expand All @@ -70,6 +40,14 @@ require("nonebot_plugin_chatrecorder")

使用示例:


> [!NOTE]
>
> 插件依赖 [nonebot-plugin-session](https://github.com/noneplugin/nonebot-plugin-session) 插件来获取会话相关信息
>
> 会话相关字段如 `id1``id2``id3` 可以查看 `nonebot-plugin-session` 插件中的说明

- 获取当前群内成员 "12345" 和 "54321" 1天之内的消息记录

```python
Expand All @@ -85,6 +63,7 @@ async def _(event: GroupMessageEvent):
)
```


> [!NOTE]
>
> `time_start``time_stop` 参数 传入的 `datetime` 对象必须为 [感知型对象](https://docs.python.org/zh-cn/3/library/datetime.html#determining-if-an-object-is-aware-or-naive)(即包含时区信息),或者确保其为 UTC 时间
Expand All @@ -106,6 +85,13 @@ async def _(bot: Bot, event: Event):
```


> [!NOTE]
>
> 可以传入 [nonebot-plugin-session](https://github.com/noneplugin/nonebot-plugin-session) 插件获取的 `Session` 对象来筛选消息记录
>
> 传入 `Session` 时可以通过 `id_type` 来控制要筛选的会话级别

- 获取当前 群聊/私聊 除机器人发出的消息外,其他消息的纯本文形式

```python
Expand All @@ -126,11 +112,56 @@ async def _(bot: Bot, event: Event):
详细参数及说明见代码注释


### 旧版本聊天记录迁移

> [!NOTE]
> `0.1.x` 版本升级到 `0.2.x` 版本时,需要添加如下配置项以完成迁移
#### `chatrecorder_record_migration_bot_id`
- 类型:`Optional[str]`
- 默认:`None`
- 说明:在旧版本(0.1.x) 时使用的机器人账号(机器人qq号),用于数据库迁移;若使用过此插件的旧版本则必须配置,数据库迁移完成后可删除;未使用过旧版本可不配置


> [!NOTE]
> `0.2.x` 版本升级到 `0.3.x` ~ `0.4.x` 版本时,会自动运行迁移脚本,或运行 `nb datastore upgrade` 进行迁移
> 若聊天记录很多,迁移可能会花费较长时间,在迁移过程中不要关闭程序

> [!NOTE]
> `0.4.x` 版本升级到 `0.5.x` 版本时,插件数据库依赖由 [nonebot-plugin-datastore](https://github.com/he0119/nonebot-plugin-datastore) 迁移至 [nonebot-plugin-orm](https://github.com/nonebot/plugin-orm)
>
> 要迁移聊天记录,需要同时安装 `nonebot-plugin-datastore``nonebot-plugin-orm`,运行 `nb orm upgrade` 进行迁移
>
> 若聊天记录很多,迁移可能会花费较长时间,在迁移过程中不要关闭程序

> [!NOTE]
> 若要从 `0.2.x` 版本直接升级到 `0.5.x`,需要先升级到 `0.4.x` 版本,运行 `nb datastore upgrade` 完成迁移后,再继续升级

### 其他说明

> [!NOTE]
>
> 由于在 OneBot V11 适配器中,机器人**发送的消息**中可能存在 base64 形式的图片、语音等,
>
> 为避免消息记录文件体积过大,本插件会将 base64 形式的图片、语音等存成文件,并在消息记录中以文件路径替代。
>
> 这些文件会放置在 [nonebot-plugin-localstore](https://github.com/nonebot/plugin-localstore) 插件设置的缓存目录,**建议定期清理**

### 支持的 adapter

| OneBot v11 | OneBot v12 | Console | Kaiheila | QQ Guild | Telegram | Feishu |
| :--------: | :--------: | :-----: | :------: | :------: | :------: | :----: |
||||||||
- [x] OneBot v11
- [x] OneBot v12
- [x] Console
- [x] Kaiheila
- [x] QQ Guild
- [x] Telegram
- [x] Feishu
- [x] RedProtocol
- [x] Discord


### 鸣谢
Expand Down
2 changes: 1 addition & 1 deletion nonebot_plugin_chatrecorder/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"~onebot.v12",
"~console",
"~kaiheila",
"~qqguild",
# "~qqguild",
"~telegram",
"~feishu",
"~red",
Expand Down

0 comments on commit 92f1c22

Please sign in to comment.