RayleaBot 官方插件 · raylea.fortune
每天给每位用户抽一次运势:运势名、星级、签文、解签,以及今日宜忌。同一天重复查询会拿到同一张结果,并累计查看天数和运势分布。
- 按用户、按自然日抽取今日运势,重复查询返回当日原结果
- 发送运势卡片图;图片渲染不可用时回退为文字
- 查看个人运势统计:各签次数、占比、连续查看天数、最长连续大吉 / 大凶
- 在插件管理页自定义触发词、时区、运势库、特殊日期和宜忌池
- 当日结果和统计始终以当前运势库、特殊日期和宜忌为准
本插件独立发布,不随 RayleaBot 主程序打包。安装后默认停用,需要在插件列表里启用才会响应命令。运势卡片依赖 RayleaBot 的图片渲染环境。
- 打开 Web 管理面,进入 插件商店(
/plugins/store)。 - 找到 运势,安装与当前系统匹配的版本。
- 安装前确认:插件会作为本机原生程序运行。
- 到 插件列表(
/plugins)启用raylea.fortune。
也可以在插件列表中安装本仓库 GitHub Release 里对应平台的 ZIP:
| 平台 | 资源 |
|---|---|
| Windows x64 | windows-x64 |
| Linux x64 | linux-x64 |
| macOS arm64 | macos-arm64 |
命令前缀以管理面 插件设置 为准,下面按默认前缀 / 和默认触发词书写。聊天命令使用管理页中的当前触发词。
| 默认命令 | 权限 | 说明 |
|---|---|---|
/我的运势 |
所有人 | 抽取或查看今日运势 |
/运势统计 |
所有人 | 查看个人运势统计 |
群聊和私聊都可以用。
你:/我的运势
机器人:(运势卡片,含运势名、星级、签文、解签、今日宜忌、连续天数)
你:/我的运势
机器人:(同一张当日结果,并提示今日已经抽过)
你:/运势统计
机器人:(统计卡片,含各签次数、占比和连续记录)
还没抽过运势时,统计命令会提示先发送「我的运势」。
- 每位用户每天一份结果,按管理页里的时区切日,默认
Asia/Shanghai。 - 签种为:大吉、吉、中吉、小吉、末吉、凶、大凶。日常抽取不会抽到「吉凶未定」,该签留给特殊日期指定。
- 今日宜、今日忌各抽两条;忌项不会与当天的宜项重复。
- 特殊日期可写成
05-04(每年重复)或2026-05-04(只生效一次),当天固定抽中指定签种。
打开 插件列表 → 运势 → 运势设置。保存内容即时生效。
| 分区 | 配置内容 |
|---|---|
| 触发词 | 运势查询词、统计查询词,可添加多个 |
| 时区 | 刷新每日运势所用的参考时区 |
| 运势库 | 运势名、星级、签文、解签;可筛选、分页、新增、复制、删除 |
| 特殊日期 | 指定日期固定抽取的签种 |
| 每日宜忌 | 「今日宜」「今日忌」候选活动 |
页脚可以重新载入、恢复默认或保存。星级由运势名决定,需要与运势名匹配才能保存。
例如,运势查询词配置为「今日运势」时,对应的聊天命令为 /今日运势。
- 统计按用户累计,不按群隔离。同一人在不同群查询,用的是同一份运势和统计。
- 当日结果和统计以当前运势库、特殊日期及宜忌为准。触发词和时区不参与结果内容判定。
- 「吉凶未定」出现在统计里,是因为特殊日期指定过该签,或运势库在极端情况下只剩这一签。
- 图片发不出来时检查渲染环境(Chrome / Chromium / Edge);插件仍会尝试发送文字版运势。
插件后端、Vue 管理页、默认运势数据和渲染模板共同进入独立 artifact。生产包不随 RayleaBot 主程序打包。.rayleabot/ 只属于本地开发,不进入提交或发布包。
fortune/
cmd/fortune/ 进程入口
internal/plugin/ 事件处理、运势逻辑和测试
internal/assets/fortunes.json 默认运势、触发词、宜忌和时区
templates/ 运势卡片与统计卡片模板
ui/ Vue 管理页
info.json manifest v4、默认触发词与发布元数据
fortunes.json 编译进后端并由管理页作为完整默认运势库使用;manifest 内联默认触发词与时区。templates/card 与 templates/stats 由统一构建器自动发现并随插件包发布。
- 将本仓库路径写入 RayleaBot 根目录下被 Git 忽略的
plugin-workspace.local.json:
{
"workspace_version": "2",
"plugins": [
{
"path": "../RayleaBotPlugins/fortune",
"enabled": true
}
]
}- 在 RayleaBot 主仓库根目录 启动:
$env:RAYLEA_PLUGIN_DEV = "watch"
$env:RAYLEA_SERVER_RELOAD = "watch"
.\start.bat启动器会把主仓库的 Go 与 Vue SDK 映射到 .rayleabot/,构建当前平台 artifact,再通过离线 plugin dev-sync 同步到 plugins/installed/。
go test -race ./...
pnpm --dir ui install --frozen-lockfile
pnpm --dir ui typecheck
pnpm --dir ui test
pnpm --dir ui build
$env:RAYLEA_PLUGIN_BUILD_USE_WORKSPACE = "1"
go run github.com/RayleaBot/RayleaBot/sdk/go/cmd/raylea-plugin build-go --plugin . --backend ./cmd/fortune --target windows-x64 --out distv* 标签对应的发布工作流使用固定 SDK 引用测试 Go 与 Vue 代码,构建 Windows x64、Linux x64 和 macOS arm64 ZIP,并创建 GitHub Release。plugin-catalog 定时读取当前 Release,校验 artifact 并记录各平台 ZIP 的 SHA-256。
本地联调与商店分发说明见 插件商店与独立开发。
Go 使用 go.mod 中可公开获取的 SDK 提交版本;CI 从 .rayleabot-sdk-ref 检出同一提交,使用 Go 1.27.2。
首次执行 pnpm --dir ui install --frozen-lockfile 会通过 pnpm:devPreinstall 准备 Vue SDK,需要 Git 与网络。使用 --ignore-scripts 时,先执行 node scripts/prepare-sdk.mjs。主仓库开发工作区已提供 .rayleabot/sdk/vue 时直接复用。