koishi-plugin-jrys-prpr
Version:
[<ruby>**jrys-prpr**<rp>(</rp><rt>点我查看预览图</rt><rp>)</rp></ruby>](https://i0.hdslb.com/bfs/article/ae33f1b2e9dbc3fe89363a40fbf040703493298333289018.png)😽QQ官方json按钮支持,20个群即可发按钮!支持 monetary!很好看的字体! 支持自动清理记录内容。
500 lines (385 loc) • 15.7 kB
Markdown
# koishi-plugin-jrys-prpr
[](https://www.npmjs.com/package/koishi-plugin-jrys-prpr)
# 今日运势生成器
🌟 欢迎使用 `jrys-prpr` - 今日运势的插件!
## 💡 功能亮点
- 🔮 生成个性化的运势卡片。
- 🌈 支持自定义背景图片和颜色。
- 🖌️ 支持自定义字体和文字颜色。
- 🔁 支持QQ官方bot的“再来一张”按钮。
## 🚀 快速开始
在Koishi插件市场搜索`jrys-prpr`并安装!
### 使用方法
#### 指令:jrysprpr
发送指令 `jrysprpr` 即可获取一张个性化的运势卡片。
您还可以使用 `--split` 选项来获取图文模式的运势,只需发送 `jrysprpr -s` 即可。
#### 指令:原图
如果您想获取运势卡的背景图,可以直接回复一张已发送的运势卡图片并输入指令 `原图`。
- 或者使用配置项`GetOriginalImageCommand_HintText`,使用`原图 ********`来获取对应标识码的背景图
如果您使用的是QQ官方bot,也可以通过点击运势卡上的“查看原图”按钮来获取。
---
### 插件配置说明
#### FortuneProbabilityAdjustmentTable(运势抽取概率调节表)
| 配置项 | 说明 |
| ----------------- | ----------------------- |
| Fortune | 运势种类 |
| luckValue(隐藏) | 种类数值(隐藏) |
| Probability | 抽取权重,滑动选择0-100 |
注:权重均为0时使用默认配置项。
#### BackgroundURL(背景图片设置)
| 配置项 | 说明 |
| ------------- | ------------------------------------------------- |
| BackgroundURL | 背景图片,可以是本地路径、文件夹路径或网络图片URL |
需要注意的是:`原图`指令只会获取对于运势图的背景图链接,若使用随机图API作为背景图,会导致无法返回正确的背景图。
因此我们推荐此处的背景图片,建议参考[emojihub-bili](https://www.npmjs.com/package/koishi-plugin-emojihub-bili)的图片方法。
#### HTML_setting(渲染页面设置)
| 配置项 | 说明 |
| ----------------------------- | -------------------------- |
| UserNameColor | 用户名称的颜色 |
| MaskColor | 蒙版的颜色 |
| HoroscopeTextColor | 运势文字颜色 |
| luckyStarGradientColor | 开启后运势星星使用彩色渐变 |
| HoroscopeDescriptionTextColor | 运势说明文字颜色 |
| DashedboxThickn | 虚线框的粗细,滑动选择0-20 |
| Dashedboxcolor | 虚线框的颜色 |
| textfont | 字体文件的绝对路径 |
#### markdown_setting(QQ官方机器人的markdown设置)
| 配置项 | 说明 |
| ---------- | -------------------------------------------- |
| mdid | QQ官方bot 的 MarkDown模板ID,格式为数字_数字 |
| zlmdtext_1 | 指令MD参数MD文字参数1 |
| zlmdtext_2 | 指令MD参数MD文字参数2 |
| zltext_1 | 指令MD显示文字内容1,每次随机选一个发送 |
| zltext_2 | 指令MD显示文字内容2,每次随机选一个发送 |
| zlmdp_1 | 指令MD参数MD图片参数1,不需要设定图片宽高 |
| zlmdp_2 | 指令MD参数MD图片参数2 |
| ButtonText | 指令MD按钮上再来一张功能显示的文字 |
## QQ官方机器人设置指南
### 1. JSON按钮
需要有20个群才能使用。
配置项直接填写对应的JSON模板的ID即可。
<details>
<summary>点击此处————查看完整说明</summary>
#### 示例审核模板-按钮内容(运势)
```json
{
"rows": [
{
"buttons": [
{
"render_data": {
"label": "再来一张😺",
"style": 2
},
"action": {
"type": 2,
"permission": {
"type": 2
},
"data": "/${config.command}",
"enter": true
}
},
{
"render_data": {
"label": "查看原图😽",
"style": 2
},
"action": {
"type": 2,
"permission": {
"type": 2
},
"data": "/获取原图 ",
"enter": false
}
}
]
}
]
}
```
### 2. 被动Markdown模板
需要有2000的日活跃用户(每日上行消息人数),并且申请Markdown能力和markdown模板。
<details>
<summary>点击此处————查看完整说明</summary>
使用本插件来发送markdown,你需要:
1. 配置URL白名单
2. 配置对应的markdown模板
其中URL白名单部分,需要进行校验和加白。
我们推荐你在对应的校验地址上做一个图片跳转服务,比如
```
https://tx.qqbot.cnm/url
使用方法:↓↓↓
/url/?url=跳转地址 // 携带http(s)
/url/qq.php?qq=QQ号 // 显示头像
/url/img.php?img=图片链接 // 加载图片
```
然后你可以每次调用markdown图片的时候使用 `https://tx.qqbot.cnm/url/img.php?img=图片链接 `这个方法
例如:
```
https://tx.qqbot.cnm/url/img.php?img=https://i1.hdslb.com/bfs/archive/72fcfba441164439595b599d2d03554bb44a9067.jpg
```
#### 本插件模板举例---1
```
**{{.text1}}**
{{.text2}}

```
#### 配置模板参数示例---1
```
[
{
"raw_parameters": "your_markdown_text_1",
"replace_parameters": "运势来啦!"
},
{
"raw_parameters": "your_markdown_text_2",
"replace_parameters": "这是你的运势哦😽"
},
{
"raw_parameters": "your_markdown_img",
"replace_parameters": "${img_pxpx}"
},
{
"raw_parameters": "your_markdown_url",
"replace_parameters": "https://tx.qqbot.cnm/url/img.php?img=${img_url}"
}
]
```
#### 本插件模板举例---2
```
{{.text1}}
{{.text2}}
{{.img}}{{.url}}
```
#### 配置模板参数示例---2
```
[
{
"raw_parameters": "your_markdown_text_1",
"replace_parameters": "运势来啦!"
},
{
"raw_parameters": "your_markdown_text_2",
"replace_parameters": "这是你的运势哦😽"
},
{
"raw_parameters": "your_markdown_img",
"replace_parameters": "![${img_pxpx}]"
},
{
"raw_parameters": "your_markdown_url",
"replace_parameters": "(https://tx.qqbot.cnm/url/img.php?img=${img_url})"
}
]
```
</details>
markdown的按钮参数,需要填入按钮模板ID,
请参考上方`1. JSON按钮` 的 `示例审核模板-按钮内容`。
### 3. 被动Markdown模板(原生按钮)
需要至少(曾经)达到过原生(钻石机器人)的日活(每日消息上行人数)
被动Markdown模板 与上文 `2. 被动Markdown模板` 一致逻辑
原生按钮配置示例 见下方 `原生Markdown` 的 `示例按钮内容`
### 4. 原生Markdown
原生Markdown支持自定义Markdown内容和按钮内容。
需要有10000日活(每日消息上行人数),并且评选为钻石机器人(每月中审核)。
<details>
<summary>点击此处————查看完整说明</summary>
#### 示例Markdown内容
```
## **今日运势😺**
### 😽您今天的运势是:

```
#### 示例配置项-按钮内容(运势)
与上方 `1. JSON按钮` 中的 `示例审核模板-按钮内容(运势)` 中的内容一致即可
支持使用变量替换参数。
示例:
```json
{
"rows": [
{
"buttons": [
{
"render_data": {
"label": "再来一张😺",
"style": 2
},
"action": {
"type": 2,
"permission": {
"type": 2
},
"data": "/${config.command}",
"enter": true
}
},
{
"render_data": {
"label": "查看原图😽",
"style": 2
},
"action": {
"type": 2,
"permission": {
"type": 2
},
"data": "/获取原图 ${encodedMessageTime}",
"enter": true
}
}
]
}
]
}
```
</details>
### 5. 原生Markdown(不渲染jrys)
原生Markdown支持自定义Markdown内容和按钮内容。
需要有10000日活(每日消息上行人数),并且评选为钻石机器人(每月中审核)。
<details>
<summary>点击此处————查看完整说明</summary>
#### 示例Markdown内容
```
<qqbot-at-user id="${session.userId}" />
您的今日运势为:
**${dJson.fortuneSummary}**
${dJson.luckyStar}
> ${dJson.unsignText}

> 仅供娱乐|相信科学|请勿迷信
```
#### 示例配置项-按钮内容(运势)
支持使用变量替换参数。
示例:
```json
{
"rows": [
{
"buttons": [
{
"render_data": {
"label": "再来一张😺",
"style": 2
},
"action": {
"type": 2,
"permission": {
"type": 2
},
"data": "/${config.command}",
"enter": true
}
}
]
}
]
}
```
</details>
### 6. 替换功能说明
本插件会替换模板变量,请在左侧填入模板变量,右侧填入真实变量值。
#### 支持的参数
- `img_pxpx`:图片尺寸,替换后格式为`img#123px #456px`。
- `img_url`:图片链接,替换后格式为`https://i0.hdslb.com/bfs/article/e1cb94c573b6bf4e23b38caa4e97de6fe804011a.jpg`。
- `config`:插件配置项。例: `config.emojihub_bili_command`:当前插件父级指令,替换后格式为`emojihub`。
- `session`:会话信息。例: `session.userId`:当前交互的用户ID,替换后格式为`1246A99CFED107A7938ADF07F9B5A398`。
- ... ... 关于`config`、`session`的更多用法请查看koishi文档 -> https://koishi.chat/
#### 示例
- `${img_pxpx}` 会被替换,如 `img#123px #456px`。
- `${img_url}` 会被替换,如 `https://i0.hdslb.com/bfs/article/e1cb94c573b6bf4e23b38caa4e97de6fe804011a.jpg`。
- `${session.userId}`:当前交互的用户ID,替换后格式,如`1246A99CFED107A7938ADF07F9B5A398`。
---
---
</details>
## 更多说明
本插件的字体经过轻量化处理
完整字体下载 请前往 -> https://www.fonts.net.cn/font-39603115276.html
## 更新日志
<details>
<summary>点击此处————查看更新日志</summary>
- **1.4.4**
- 优化配置项展示项
- 添加部分配置项说明
- 增加调试日志内容
- 历史更新忘了写了
- **1.3.6**
- 轻量化字体内容
- **1.3.5**
- 增加时区设置,统一时区使用
- 增加重试机制,优化记录重试值
- 优化本地化
- **1.3.4**
- `https://github.com/shangxueink/koishi-shangxue-apps/issues/89`
- 我草怎么三个版本了,我更新了什么?
- 优化page.close处理
- 优化发送markdownMessage函数的使用
- **1.3.0**
- 适配qqmarkdown
- 优化发送逻辑
- 新增不渲染的markdown发送模式
- 调整资源文件位置
- 更新说明文档
- **1.0.0**
- 更新了好多东西。
- **0.6.2**
- 兼容私聊markdown发送
- **0.6.1**
- 优化qq平台的私聊,使用图文返回而不是markdown
- 优化控制台文字说明
- 增加bug反馈地址和项目地址
- **0.5.2**
- 修复本地文件路径的file:/协议
- **0.4.4**
- 新增`蒙版模糊半径`
- 新增markdown按钮style调整配置项
- 优化`原图`指令,取消别名
- **0.4.1**
- 优化头像获取
- **0.4.0**
- 优化今日运势的文字内容,对于部分过短内容进行补缺
- 增量背景图片内容,对于部分背景进行重新收集
- 新增背景图`白圣女`
- **0.3.11** 修复部分情况下日期不更新的情况
- **0.3.9** 优化控制台说明
- **0.3.8**
- 本地化支持
- 取消配置项定义指令权限
- 新增配置项,允许自定义`原图`指令的名称
- 优化配置项`GetOriginalImageCommand_HintText`,改为选择配置项
- 修改了一些小注释
- **0.3.7**
- 新增壁纸`miku`
- 增量壁纸`猫羽雫`
- 优化readme说明
- **0.3.6**
- 优化`getJrys`函数,
- 确保每一天生成的种子都会有所不同,尽可能实现不同日期的运势也不同。
- 新增`split`选项,使用`-s`即可实现图文输出的今日运势
- 优化json存储地址
- **0.3.5**
- HTML优化:增加`background-clip: text;`以修复`未定义标准属性“background-clip”以实现兼容性`的警告
- 新增配置项`GetOriginalImageCommand_HintText`,在保留回复获取原图的基础上,允许使用指令来获取原图
- 优化原图的匹配逻辑
- **0.3.4**
- 新增配置项`GetOriginalImageCommand`,允许用户使用`原图`指令来获取运势图片的背景图
- 优化QQ官方markdown按钮,新增按钮`查看原图`
- 暂时使用消息ID作为特征记录
- 非官方bot使用`回复消息`触发指令来获取原图
- 官方bot使用markdown按钮来获取
- 暂不支持官方bot使用`回复消息`触发指令来获取原图
- 暂不确定其他普通的兼容性,目前仅测试`onebot`平台
- **0.3.3**
- 优化权重抽取算法
- 优化README说明文档
- **0.3.2**
- 优化调试日志输出
- 优化README说明文档
- **0.3.0** 开始记录更新日志
- 优化jrys的json内容。原本的运势概率分配不均。现优化json的文案内容,分布更加合理。
- 新增配置项`FortuneProbabilityAdjustmentTable`,允许用户自定义运势抽取权重
- 不再使用`jrys.js`,改为使用json存储文案
- 优化文件夹结构,背景图片的txt放进文件夹`backgroundFolder`
- 针对`FortuneProbabilityAdjustmentTable`表格配置运势概率全为`0`的情况的优化。
</details>