- 名称:
每日随机
- 作者:
夏里白雪(XiaLiBaiXue@outlook.com)
- 版本:
v0.1.0
- 兼容版本:
0.11.81(201)
- 平台:
QQ
- 操作系统:
Windows10
下载
以下文件为旧版插件,请从最新回复中获取最新版本插件
说明
DailyRandom - 每日随机插件
📖 插件介绍
DailyRandom 是一个 OlivOS 框架下的每日随机抽取插件,支持用户自定义牌堆和触发指令。通过基于用户ID和日期的哈希算法,确保每个用户每天都能抽取到固定的随机结果。
✨ 功能特性
🎯 核心功能
- 每日随机抽取:基于用户ID和日期的哈希算法,确保每日结果固定
- 多时间维度:支持"今日"、“昨日”、"明日"三种时间维度的查询
- 自定义牌堆:支持用户配置多个牌堆文件,灵活扩展
- 递归转义:支持多层嵌套的占位符转义,确保结果完整
- 多作用范围模板:支持用户、群聊、全局三种作用范围,每种作用范围有独立的默认模板和配置选项
- 回复模板优先级:支持单独配置、全局配置、默认配置三级优先级,自定义输出格式
🎨 界面功能
- 全局设置:配置牌堆文件路径、用户/群聊/全局回复模板
- 配置管理:可视化配置触发指令、牌堆映射和作用范围
- 作用范围选择:支持用户、群聊、全局三种作用范围选择
- 智能灰字提示:输入框支持占位符提示,提升用户体验
📦 安装方法
- 将
DailyRandom 文件夹放置在 OlivOS 的 plugin/app/ 目录下
- 重启 OlivOS 或重新加载插件
- 在 OlivOS 管理界面中找到"每日随机设置"菜单项
⚙️ 配置说明
全局设置
1. 全局启用
2. 牌堆文件路径
- 支持填写目录路径或单个 JSON 文件路径
- 如果是目录,系统会自动加载目录下所有
.json 文件
- 示例:
D:\deckclassic 或 D:\deckclassic\tarot.json
3. 回复模板设置
插件支持三种作用范围的回复模板:
用户回复模板:针对个人查询的回复格式
- 默认模板:
这是【{tUserName}({tUserId})】您{tRltvDate}({tAbslDate})的{tKeyWord}结果:\n{tRandomResult}
- 留空时使用默认模板
群聊回复模板:针对群聊查询的回复格式
- 默认模板:
这是【{tGroupName}({tGroupId})】群聊{tRltvDate}({tAbslDate})的{tKeyWord}结果:\n{tRandomResult}
- 留空时使用默认模板
全局回复模板:通用回复格式
- 默认模板:
这是{tRltvDate}({tAbslDate})的{tKeyWord}结果:\n{tRandomResult}
- 留空时使用默认模板
支持的关键字:
{tRltvDate}:相对日期(今日/昨日/明日)
{tAbslDate}:绝对日期(如 2026-03-27)
{tKeyWord}:关键词(触发后缀)
{tRandomResult}:随机结果
{tUserId}:用户ID
{tUserName}:用户名
{tGroupId}:群聊ID
{tGroupName}:群聊名称
配置管理
新增配置
- 右键点击配置列表,选择"新增"
- 填写配置信息:
- 牌堆名称:牌堆文件中定义的牌堆键名
- 触发后缀:触发指令的后缀部分
- 作用范围:选择用户、群聊或全局(影响随机种子和默认模板)
- 是否启用:是否启用该配置
- 回复模板:单独配置的回复模板(留空使用对应作用范围的全局模板)
修改配置
- 右键点击要修改的配置项
- 选择"修改"
- 修改配置信息后点击"保存"
删除配置
- 右键点击要删除的配置项
- 选择"删除"
🎮 使用方法
触发指令
插件支持三种时间维度的触发指令:
- 今日:
今日 + 触发后缀
- 昨日:
昨日 + 触发后缀
- 明日:
明日 + 触发后缀
使用示例
示例 1:今日金句
配置:
- 牌堆名称:每日金句
- 触发后缀:金句
使用:
用户发送:今日金句
机器人回复:这是【小明(1001)】您今日(2026-03-27)的金句结果:
「不要为打翻的牛奶而哭泣。」
示例 2:昨日塔罗
配置:
- 牌堆名称:塔罗牌全单卡
- 触发后缀:塔罗
使用:
用户发送:昨日塔罗
机器人回复:这是【小红(1002)】您昨日(2026-03-26)的塔罗结果:
【11】权杖侍从逆位
(PageOfWands)【11】
[CQ:image,file=幻星集塔罗牌图片/权杖侍从逆位.jpg]
优柔寡断、不情愿、不安...
示例 3:明日运势
配置:
- 牌堆名称:每日运势
- 触发后缀:运势
使用:
用户发送:明日运势
机器人回复:这是【小刚(1003)】您明日(2026-03-28)的运势结果:
明日运势:大吉
📋 牌堆文件格式
JSON 格式示例
{
"每日金句": [
"「不要为打翻的牛奶而哭泣。」",
"「成功是99%的汗水加1%的灵感。」",
"「生活不是等待暴风雨过去,而是学会在雨中跳舞。」"
],
"塔罗牌全单卡": [
"{_愚者正逆图介}",
"{_魔术师正逆图介}",
"{_女祭司正逆图介}"
],
"_愚者正逆图介": [
"{_愚者正位名图介}",
"{_愚者逆位名图介}"
],
"_愚者正位名图介": [
"{_愚者正位名图}\n{_愚者正位介}"
],
"_愚者正位名图": [
"【0】愚者正位\n(TheFool)【0】"
],
"_愚者正位介": [
"憧憬自然的地方、毫无目的地前行、喜欢尝试挑战新鲜事物..."
]
}
占位符说明
- 基本格式:
{牌堆名称}
- 嵌套支持:支持多层嵌套,系统会递归解析
- 随机选择:如果占位符对应的值是数组,会基于用户ID和日期进行伪随机选择
🔧 高级功能
回复模板优先级
系统按以下优先级选择回复模板(同一作用范围内):
- 单独配置:特定触发后缀的独立模板(最高优先级)
- 全局配置:对应作用范围的系统级通用模板(次优先级)
- 默认配置:对应作用范围的代码硬编码模板(最低优先级)
注意:作用范围(用户/群聊/全局)决定了使用哪一套默认模板和全局配置。
自定义回复模板示例
模板:🌟 {tUserName}的{tRltvDate}{tKeyWord}:{tRandomResult}
用户发送:今日金句
机器人回复:🌟 小明的今日金句:「不要为打翻的牛奶而哭泣。」
模板:🔮 【{tUserName}({tUserId})】{tRltvDate}({tAbslDate})塔罗占卜结果:\n\n{tRandomResult}
用户发送:今日塔罗
机器人回复:🔮 【小红(1002)】今日(2026-03-27)塔罗占卜结果:
【11】权杖侍从逆位
(PageOfWands)【11】
[CQ:image,file=幻星集塔罗牌图片/权杖侍从逆位.jpg]
优柔寡断、不情愿、不安...
⚠️ 注意事项
1. 牌堆文件路径
- 确保路径存在且有读取权限
- 支持相对路径和绝对路径
- 目录路径会自动加载所有
.json 文件
2. 牌堆名称
- 必须与牌堆文件中定义的键名完全一致
- 区分大小写
- 不支持特殊字符
3. 触发后缀
- 触发后缀不能为空
- 触发后缀区分大小写
- 避免使用特殊字符
4. 递归深度
- 系统默认最大递归深度为 15 层
- 超过最大深度会停止递归
- 避免循环引用(如 A -> B -> A)
5. 性能优化
- 系统会缓存已加载的牌堆数据
- 配置修改后需要保存才能生效
- 建议将牌堆文件放在固定目录
🐛 常见问题
Q1: 为什么抽取结果总是第一个?
A: 检查牌堆文件中占位符对应的值是否为数组。如果是数组,系统会基于用户ID和日期进行伪随机选择。
Q2: 为什么占位符没有被替换?
A: 检查牌堆文件路径是否正确,以及占位符名称是否与牌堆文件中定义的键名一致。
Q3: 如何查看调试信息?
A: 在 main.py 中设置 DEBUG_MODE = True,系统会输出详细的调试日志。
Q4: 如何修改最大递归深度?
A: 在 main.py 的 parse_deck_content 方法中修改 max_depth 参数。
📝 更新日志
v0.2.0 (2026-03-28)
- 🐛 修复GUI中灰字提示(占位符)的交互问题,提升用户体验
- ✨ 新增多作用范围支持(用户、群聊、全局),每种作用范围有独立的默认模板
- ✨ 优化配置管理界面,支持作用范围选择
- ✨ 改进默认模板逻辑,根据作用范围自动选择合适的默认模板
- 🔧 优化代码结构,提升可维护性
v0.1.0 (2026-03-27)
- ✨ 初始版本发布
- ✨ 支持每日随机抽取功能
- ✨ 支持多时间维度查询(今日/昨日/明日)
- ✨ 支持自定义牌堆和触发指令
- ✨ 支持全局和单独回复模板
- ✨ 支持递归占位符转义
- ✨ 支持可视化配置界面
📄 许可证
本插件遵循 MIT 许可证。
👤 作者
🤝 贡献
欢迎提交 Issue 和 Pull Request!
享受每日随机的乐趣! 🎲✨
截图示例



