本插件是直接使用 这个skill 一次出来的,试了几遍基本没问题——本篇文档也是ai直接生成的
- 版本:1.0.1
- 作者:Desom-fu
- 兼容版本:理论兼容所有3.0以上的所有版本
- 平台:理论支持全平台(仅在 QQ 部署测试过)
- 操作系统:理论支持全系统(在 Windows Server 2022 上部署过)
- 前置插件:OlivaDiceCore(可选)
- API 数据源:fangame-archive
—
更新日志
v1.0.1 更新
- i wanna 查询新增
游戏引擎条目(建议恢复默认回复,否则看不到)
—
一、插件简介
I Wanna Search 是一款 神秘小众我想除了我应该不会有任何人进行装载的 OlivOS 插件,对接 Fangame Archive 的公开 API,在 QQ / 其他聊天平台内直接查询 I Wanna 同人游戏信息。用户只需发送简单指令,即可按名称搜索、按 ID 精确查找、随机抽取或获取每日推荐,并查看游戏的标题、作者、评分、难度、标签、下载链接与文件大小等完整元数据。
插件采用轻量插件模板构建,可在无 OlivaDiceCore 的环境中独立运行;当 OlivaDiceCore 存在时,自动接入群开关检测、骰主权限判定与日志记录钩子,实现无缝集成。
—
二、功能一览
| 功能 | 说明 |
| 名称搜索 | 模糊搜索游戏标题,支持多结果分页浏览与序号选择 |
| ID 查询 | 按游戏 ID 精确查询单个游戏 |
| 随机抽取 | 随机返回 110 个游戏,支持按标签筛选 |
| 每日推荐 | 每用户每天固定一个推荐,当日内缓存结果 |
| 结果分页 | 多结果时自动分页,支持上一页 / 下一页 / 跳页 |
| 合并转发 | QQ 平台下多条结果自动合并为合并转发消息 |
| 自定义回复 | 全部回复词可在 GUI 中编辑,支持模板变量 |
| 多 Bot 管理 | 全局开关、单 Bot 开关、骰主权限列表 |
| GUI 面板 | 可视化编辑全局 / Bot 配置、回复词与骰主列表 |
—
三、安装方式
- 解压后将
IWannaSearch.opk 文件拖入 OlivOS 插件目录 plugin/app。
- 重启 OlivOS 或重载插件,插件将自动在
plugin/data/IWannaSearch/ 下创建所需的配置目录与文件。
—
四、用户指令
以下指令前缀支持 . / 。 / /,不区分大小写。
查询类
| 指令 | 说明 | 示例 |
.iw <游戏名> | 按名称搜索 | .iw Phantom Needle |
.iw search <游戏名> | 按名称搜索(同上,完整写法) | .iw search Love Escape |
.iw id <游戏ID> | 按 ID 精确查询 | .iw id 5836 |
.iw random [个数] | 随机抽取,默认 1 个,最多 10 个 | .iw rand 3 |
.iw random [个数] --tag=<标签> | 随机抽取指定标签的游戏,标签可含空格 | .iw rand 5 --tag=Adventure Mujica |
.iw today | 获取今日推荐(每用户每天固定,自动缓存) | .iw today |
.iw help | 查看帮助 | .iw help |
分页浏览(搜索多结果时)
当搜索返回多个结果时,插件会自动分页展示,此时可以直接输入以下内容进行操作:
| 输入 | 效果 |
<序号> | 选择查看对应序号的游戏详情 |
下一页 或 next | 翻到下一页 |
上一页 或 prev | 翻回上一页 |
跳页<页数> | 跳转到指定页码,如 跳页3 |
page <页数> | 同上,英文写法 |
分页会话默认 5 分钟过期,过期后需重新搜索。
—
五、管理指令
管理指令仅限 OlivaDiceCore 骰主或本插件配置骰主使用。
全局管理 .iwglobal
| 指令 | 说明 |
.iwglobal status | 查看全局开关状态 |
.iwglobal on | 开启全局功能(所有 Bot 生效) |
.iwglobal off | 关闭全局功能 |
.iwglobal debug on | 开启调试模式(输出详细日志) |
.iwglobal debug off | 关闭调试模式 |
Bot 管理 .iwbot
| 指令 | 说明 |
.iwbot status | 查看当前 Bot 开关状态 |
.iwbot on / .iwbot off | 开启 / 关闭当前 Bot |
.iwbot master list | 查看本插件配置骰主列表 |
.iwbot master add <用户ID> | 添加骰主(支持多个,空格分隔) |
.iwbot master del <用户ID> | 删除骰主(支持多个,空格分隔) |
—
六、GUI 配置面板
在 OlivOS 主界面点击「菜单 → IWannaSearch → 打开插件配置」即可打开 GUI 设置面板。面板分为两个页签:
全局设置
- 全局启用:控制所有 Bot 是否响应 IWannaSearch 指令。
- 全局调试模式:开启后输出 DEBUG 级日志,便于排查问题。
- 下方提供「保存全局设置」「打开总目录」「刷新」「关闭窗口」按钮。
Bot 配置
- Bot 选择器:下拉切换当前操作的 Bot(支持多 Bot 环境)。
- 当前 Bot 启用:单独控制当前 Bot 的开关。
- 编辑回复词:打开回复词管理窗口,支持逐条编辑、恢复默认、删除自定义条目。
- 编辑骰主列表:可视化添加 / 删除本插件骰主 ID。
- 下方提供「打开配置目录」「打开回复目录」快捷入口。
回复词管理
回复词管理窗口以表格形式列出所有可编辑的回复条目,每条包含:
- 条目名(如
reply_game_metadata)
- 说明(该条目的用途与可用变量)
- 内容(当前回复文本)
双击或右键选择「编辑」即可修改。回复词支持以下模板变量:
| 变量 | 含义 |
{id} | 游戏 ID |
{title} | 游戏标题 |
{creator} | 作者 |
{rating} | 评分(x.x/10) |
{difficulty} | 难度(x.x/10) |
{rating_count} | 评分人数 |
{tags} | 标签(逗号分隔) |
{url} | 下载链接 |
{file_size} | 文件大小 |
{count} | 搜索结果总数 |
{current_page} / {total_page} | 当前页 / 总页数 |
—
七、配置文件结构
插件运行后,配置目录结构如下:
plugin/data/IWannaSearch/
├── global_config.json # 全局配置(所有 Bot 共用)
├── <bot_hash>/ # 各 Bot 独立目录
│ └── bot_config.json # Bot 配置(开关、骰主列表)
├── <linked_bot_hash>/ # 群链合并后的 Bot 目录
│ ├── message_custom.json # 自定义回复词
│ ├── message_variable.json # 自定义变量
│ └── storage/
│ └── user/
│ └── <user_hash>/
│ └── today.json # 每日推荐缓存
global_config.json
{
"global_enable_switch": true,
"global_debug_mode_switch": false,
"api_base_url": "https://fangame-archive.com",
"api_timeout_seconds": 12,
"result_page_size": 10,
"selection_timeout_seconds": 300
}
| 字段 | 默认值 | 说明 |
global_enable_switch | true | 全局启用开关 |
global_debug_mode_switch | false | 调试日志开关 |
api_base_url | https://fangame-archive.com | API 地址,可替换为镜像站 |
api_timeout_seconds | 12 | API 请求超时(360 秒) |
result_page_size | 10 | 搜索结果每页显示条数(110) |
selection_timeout_seconds | 300 | 分页会话过期时间(303600 秒) |
bot_config.json
{
"bot_enable_switch": true,
"configured_master_list": []
}
| 字段 | 默认值 | 说明 |
bot_enable_switch | true | 当前 Bot 启用开关 |
configured_master_list | [] | 本插件配置骰主 ID 列表 |
—
八、权限体系
插件有两层权限来源,满足任意一层即可执行管理命令:
- OlivaDiceCore 骰主:通过
ordinaryInviteManager.isInMasterList 判定,与 OlivaDiceCore 全局骰主列表一致。
- 本插件配置骰主:通过
bot_config.json 中的 configured_master_list 判定,可通过 .iwbot master add/del 或 GUI 管理。
普通查询指令(search / id / random / today / help)不需要任何权限。
—
九、OlivaDiceCore 联动
当检测到 OlivaDiceCore 存在时,插件会自动启用以下联动行为:
- 群开关检测:尊重 OlivaDiceCore 的
groupEnable / hostLocalEnable 设置,群关闭时不响应指令。
- 骰主权限:支持 OlivaDiceCore 全局骰主直接管理本插件。
- 日志钩子:回复消息自动写入 OlivaDiceLogger,可在日志染色网站中查看。
- 群链合并:主从 Bot 的回复词、变量和存储目录自动合并到主账号目录,避免配置割裂。
无 OlivaDiceCore 时,以上功能自动降级,插件仍可正常使用查询功能。
—
十、技术架构
文件职责
| 文件 | 职责 |
__init__.py | 暴露 OlivOS 加载入口 |
main.py | 事件入口,转发给 message / utils |
message.py | 消息解析、命令分发、业务逻辑 |
function.py | API 请求与数据格式化 |
utils.py | 公共工具:日志、配置、权限、回复封装 |
config.py | 静态常量与默认值 |
message_custom.py | 默认回复词与 GUI 说明 |
gui.py | 配置面板 GUI |
API 端点
| 操作 | 方法 | 端点 |
| 名称搜索 | GET | /api/search?q=<关键词> |
| ID 查询 | GET | /api/search?id=<ID> |
| 随机抽取 | GET | /api/random?count=<N>&tag=<标签> |
所有请求附带 User-Agent: IWannaSearch/1.0 头部,超时时间可配置。API 返回 JSON,包含 success、count、results 字段,其中 results 为游戏对象数组。
—
十一、更新日志
v1.0.0
- 初始版本发布
- 支持名称搜索、ID 查询、随机抽取、每日推荐
- 支持标签筛选随机结果(
--tag= 参数,兼容含空格的标签名)
- 支持多结果分页浏览与序号选择
- 支持自定义回复词与模板变量
- 支持 OlivaDiceCore 联动(群开关、骰主权限、日志钩子、群链合并)
- 提供 GUI 配置面板
—
十二、常见问题
Q:每日推荐是所有人共享同一个结果吗?
A:不是。每个用户每天有独立的推荐结果,按用户 hash 缓存在 storage/user/<hash>/today.json 中,次日自动刷新。
Q:搜索结果太多看不到怎么办?
A:多结果时自动分页,每页默认 10 条。可输入「下一页」「上一页」或「跳页 N」翻页,输入序号查看详情。
Q:如何修改回复内容?
A:在 GUI「编辑回复词」中修改,或直接编辑 plugin/data/IWannaSearch/<bot_hash>/message_custom.json 文件。支持模板变量。
—
十三、反馈与致谢
如有问题或建议,请在本帖下回复喵。