
# @shangxueink/koishi-plugin-keyword-dialogue

[![npm](https://img.shields.io/npm/v/@shangxueink/koishi-plugin-keyword-dialogue?style=flat-square)](https://www.npmjs.com/package/@shangxueink/koishi-plugin-keyword-dialogue)


🤖 本插件用于在聊天机器人中设置关键词回复。

你可以定义特定的关键词，当用户输入这些关键词时，机器人会给出预设的回复。

此外，该插件还支持全局关键词和正则表达式匹配，以及图片下载和多段回复功能。

## 功能特色
- 📝 **关键词回复**：设置特定关键词和对应的回复内容。
- 🌐 **全局关键词**：设置全局范围内有效的关键词回复。
- 🛠️ **正则匹配**：支持通过正则表达式匹配用户输入。
- 🖼️ **图片下载**：能够下载用户提供的图片链接，并保存到本地。
- 📝 **多段回复**：支持多段回复内容，可以按原始格式发送或合并为一条消息。
## 配置项说明
### 基础设置
- `TriggerPrefix`: 触发添加关键词的指令前缀，默认为“添加”。
- `DeleteKeyword`: 触发删除关键词的指令前缀，默认为“删除”。
- `KeywordOfEnd`: 退出添加关键词功能的关键词，默认为“结束添加”。
- `GlobalTriggerPrefix`: 触发全局添加关键词的指令前缀，默认为“全局添加”。
- `GlobalDeleteKeyword`: 触发全局删除关键词的指令前缀，默认为“全局删除”。
- `defaultImageExtension`: 输入图片保存的后缀名，默认为“png”。
### 进阶设置
- `Prompt`: 添加关键词时返回的文字提示，默认为“请输入回复内容（输入结束添加以退出）：”。
- `MatchPatternForExit`: 如何退出添加关键词模式，默认为包含关键词即可退出。
- `AlwayPrompt`: 是否总是返回提示，默认为仅返回一次提示。
- `HandleDuplicateKeywords`: 如何处理重复添加的关键词，默认为不允许添加重复内容。
- `MultisegmentAdditionRecoveryEffect`: 多段添加的回复效果，默认为合为一条消息。
### 调试设置
- `consoleInfo`: 是否开启日志调试模式，默认为关闭。


## 安装与使用
1. 将本插件安装到你的 Koishi 项目中。
2. 设置所需的配置项。
3. 开启插件即可啦~

## 使用方法

### 添加关键词回复

使用命令格式：`添加 <关键词> [-x]`
- `<关键词>`: 要添加的关键词
- `-x`: 可选，表示关键词为正则表达式
例如：
```bash
添加 你好啊 -x
```

使用命令格式：`添加 <关键词> [-u]`
- `<关键词>`: 要添加的关键词
- `-u`: 可选，表示关键词为自定义的正则表达式
例如：
```bash
添加 (?:.*测试.*123.*|.*快123.*测试.*|^123test$)   -u
```

### 删除关键词回复
使用命令格式：`删除 <关键词>`
- `<关键词>`: 要删除的关键词（支持删除正则表达式关键词）
例如：
```bash
删除 你好啊
```



## 注意事项
- 请确保你的 Koishi 机器人拥有足够的权限来保存图片和读取配置文件。
- 本插件使用 JSON 文件来存储关键词和回复数据，请注意数据备份。
- 如果需要使用图片功能，请确保你的环境支持 Node.js 的文件系统操作。
