EntryLib
EntryLib 是一个基于 Mirai-Console 的插件,用于实现群词条、自定义回复或更多功能。
目录
声明
- 本插件仅作为学习交流等使用,请勿用于盈利,否则法律后果自负。
- 欢迎加入
原神交流群:735209171 - 如果在使用插件过程中遇到任何问题,请发送 Issues 询问
- 插件开发初期,有许多期待完善之处,欢迎提交代码风格相似的 PR
可用console版本
- 0.5.2
- 1.0
- 2.0
- 2.7-M1
使用方法
- 请在 Mirai-Console 框架下使用本插件
- 从 Release 下载最新版jar
- 放置在 Mirai 目录的 plugins 文件夹下
- 下载并安装 Sqlite3 ,添加至环境变量
- 运行 Mirai 并登录机器人
- 在机器人所在群里发送
打开词条开关
,若获得回复已启用词条库插件!
,则安装成功
基本指令列表
"学习#[词条名]#[词条内容/回复项]#[匹配方式]"
作用:学习一个新的词条,记入数据库中
例:学习#词条库#欢迎使用词条库#精确
理想回复
格式说明
- 请使用
#
分割 - 匹配方式为可选项,包含
精确
、模糊
、正则
,默认为精确
- 如果使用正则,请在词条名处填写正则表达式,并可在内容中用
$1
,$2
...代表分组截获 - 使用
\
进行转义,详见额外说明
"查看#[词条名]"
作用:查看词条内容
例:查看#词条库
理想回复
"删除#[词条名]"
作用:删除词条
例:删除#词条库
理想回复
"历史#[词条名]#[页码]"
作用:查看词条修改历史
例:历史#词条库
理想回复
格式说明
- 页码为可选项,只可填写数字,默认为
1
- 因为长度限制,因此一页所显示的数量有限,详见配置项
"搜索#[关键词]#[页码]"
作用:检索与关键词有关的所有词条
例:搜索#词条
理想回复
格式说明
- 页码为可选项,只可填写数字,默认为
1
"全部#[页码]"
作用:检索所有词条
例:全部#2
理想回复
格式说明
- 页码为可选项,只可填写数字,默认为
1
- 若不填写页码,也可以直接使用
全部
作为命令
打开/关闭词条开关
作用:开启或关闭对应群聊的插件开关
例:打开词条开关
额外说明
- 本插件仅适用于群聊,且每个群聊独立拥有自己的词条库
- 本插件支持转义,可以使用
\#
来避免文本被解析为分隔符,也可以使用\\
来避免右斜杠被识别为转义符 - 本插件的指令与回复均可自定义,详见配置项
- 如果将回复配置为空,插件将不会发送消息
- 拒绝以
__MAIN_TABLE
、开关指令、全部指令为词条名的修改与访问,插件将会检测并作出反馈 - 删除命令的默认权限为管理员以上才可使用,因为不同于更新为空,一旦词条被删除,它的所有历史备份均被删除,且不会再出现在搜索结果中
配置项
配置项位于Mirai\data\EntryLib\
文件夹中
global.json
本配置项提供对插件全局的控制,包含以下项目:
- "view-mode":
0
表示需要输入查看指令才可查看词条内容,修改为1
表示可以直接输入词条名来查看词条内容(此时插件将不会再反馈查看指令错误信息) - "default-switch":
1
表示所有群都默认启用本插件,修改为0
表示所有群都默认禁用本插件 - "switch-permission":
1
表示只有群管等级以上的成员才有权力修改插件开关(即使用命令打开/关闭词条开关
),0
表示所有成员都可以修改 - "history-max-height":
3
表示对于历史指令,每页仅返回3个记录,请确保本数值为正整数 - "search-max-height":
5
表示对于搜索指令,每页仅返回5个记录,请确保本数值为正整数 - "reply-mode":
0
表示机器人将普通回复,1
表示机器人回复时会@发送指令的成员,2
表示机器人回复时会引用指令消息 - "xxx-permission":包含各类命令的执行权限,
1
为管理员表示只有群管等级以上的成员才可以使用,0
表示所有成员都可以使用 - "download-image":
1
表示缓存接收到的图片(仅限于开关开启的群),修改为0
表示不缓存。缓存图片可以保证您的词条图片不会丢失,但同时也会增加磁盘占用,若不缓存仅能保证在一个tx服务器缓存刷新周期内图片不会丢失(这个周期一般较长)
input.json
本配置项提供用户键入指令的配置
实质为键值对,键为用户输入,值为指令识别参数,请对照基本指令列表进行查看
可以增加新的键值对来提供新的指令
默认内容请查看这里
output.json
本配置项提供插件回复项的配置
实质为键值对,键为条件状况,值为实际回复项
可以修改键值对来获得不同插件回复,但请勿增加或删除任意配置项
默认内容请查看这里
下面是一些参数解释:
- "learn"中
$1
表示词条名 - "view"中
$1
表示词条名,$2
表示词条内容 - "(history,reply)"中
$1
表示词条名,$2
表示词条历史,$3/$4
表示 页码/总页数 - "(history,single)"表示单条历史格式,其中
$1
表示版本号,$2
表示版本内容,$3
表示修改时间
控制台
插件在 Windows 环境下运行时,将会创建系统托盘图标
双击图标或点击菜单可以进入插件 GUI 控制台
在控制台中可以方便地进行如下操作:
- 编辑全局配置
- 词条库导入导出
词条库导入导出
导入导出会根据一个 json 文件进行,这个文件的格式样例可以参考这里
导出时将会生成上述格式的 json 文件
导入时需要提供上述格式的 json 文件,同时可以选择三种覆盖方式:
- 不覆盖相同词条
- 合并相同词条
- 覆盖相同词条
数据库结构
插件采用 sqlite 作为数据库
每一个群独立建立数据库,保存为群号.db
文件
每个数据库使用__MAIN_TABLE
作为主表,储存了所有词条名
每个词条单独建立TABLE_[id]
表,储存该词条信息
To-Do List
开发模块:
- Mirai通信
- 指令模块
- 数据库模块
- 用户OI
- GUI
- 语义分析
功能模块:
- 语音解析
插件依赖
本插件依赖于以下模块:
- mirai-console
- sqlite-jdbc
- fastjson