Skip to content

Commit c8ffe82

Browse files
committed
docs(start/plugin): 更新 QQRichText 使用示例
- 在 plugin.md 文件中更新了 QQRichText 的使用示例 - 为了防止注入攻击,使用 QQRichText.Text 来创建文本消息段 - 更新了文档中的代码示例和解释
1 parent ec709b2 commit c8ffe82

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

docs/start/plugin.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ def handler(event: CommandManager.CommandEvent, text: QQRichText.QQRichText):
8383
# 而获取键的语法是直接相当于从事件中取,所以需要这么写
8484
user = QQDataCacher.get_group_member_info(event["group_id"], event.user_id)
8585
# 生成回复文本
86-
message = QQRichText.QQRichText(f"{user.get_nickname()} 发送了:", text)
86+
message = QQRichText.QQRichText(QQRichText.Text(f"{user.get_nickname()} 发送了:"), text)
8787
# 使用 event.reply() 可以快速回复消息
8888
event.reply(message)
8989
```
@@ -98,7 +98,7 @@ def handler(event: CommandManager.CommandEvent, text: QQRichText.QQRichText):
9898
- **`text: QQRichText.QQRichText`**: 这就是**依赖注入**的魔力!框架看到处理器需要一个名为 `text` 的参数,它会自动将上面 `GreedySegments('text')` 捕获到的内容作为 `QQRichText` 对象传递给这个参数。你无需手动解析消息。
9999
- `event.is_private`: 判断消息是否为私聊
100100
- `QQDataCacher.get_user_info(event.user_id)`:从事件中拿出 `user_id`,然后通过 `QQDataCacher` 来获取用户信息
101-
- `message = QQRichText.QQRichText(f"{user.get_nickname()} 发送了:", text)`:使用 `QQRichText` 创建回复文本
101+
- `message = QQRichText.QQRichText(QQRichText.Text(f"{user.get_nickname()} 发送了:"), text)`:使用 `QQRichText` 创建回复文本,它非常强大,可以传入多种类型的消息段,直接提供文本会被自动进行CQ解析,所以为了避免被注入攻击,所以此处需要使用 `QRichText.Text`,这个消息段是仅文本的,会进行转义(在被转换为cq码时)。
102102
- `event.reply(message)`: `CommandEvent` 对象提供的便捷方法,可以直接引用并回复触发该命令的消息。
103103

104104
### 4. 最终代码
@@ -137,7 +137,7 @@ def handler(event: CommandManager.CommandEvent, text: QQRichText.QQRichText):
137137
# 而获取键的语法是直接相当于从事件中取,所以需要这么写
138138
user = QQDataCacher.get_group_member_info(event["group_id"], event.user_id)
139139
# 5. 生成回复文本
140-
message = QQRichText.QQRichText(f"{user.get_nickname()} 发送了:", text)
140+
message = QQRichText.QQRichText(QQRichText.Text(f"{user.get_nickname()} 发送了:"), text)
141141
# 6. 执行回复操作
142142
event.reply(message)
143143
```

0 commit comments

Comments
 (0)