随机游戏筛选
Vnite 支持为随机游戏功能配置自定义筛选规则,你可以在 设置-高级-随机游戏筛选配置 中直接编辑 JSON。配置生效后,随机游戏只会从符合规则的游戏中抽取。
TIP
建议优先使用右上角的 预设配置 生成模板,再按需修改。
预设配置
当前内置了三组预设,适合用来快速起步:
默认:仅保留gameNameNot黑名单筛选游玩状态:按游玩状态筛选,并保留黑名单筛选收藏:按收藏筛选,并保留黑名单
基本结构
筛选规则采用递归对象结构表示,每一层对象都遵循统一约束:
- 对象必须且仅包含一个键
- 键名表示操作符
- 键值表示该操作符的操作对象
形式如下:
json
{
"<operator>": <value>
}该结构可以递归嵌套,从而表达复杂逻辑。
NOTE
根节点必须为单一操作符对象,例如:
json
{ "and": [...] }下面这种写法不合法:
json
{ "and": [...], "or": [...] }可用操作符
逻辑与 and
- 值必须为数组
- 数组中的每一项都必须是一个合法规则对象
- 所有子条件都必须满足
json
{
"and": [{ "inCollection": ["A"] }, { "gameNameNot": ["game1"] }]
}逻辑或 or
- 值必须为数组
- 数组中的每一项都必须是一个合法规则对象
- 任一子条件满足即可
json
{
"or": [{ "inCollection": ["A"] }, { "playStatusIs": ["playing"] }]
}逻辑非 not
- 值必须是单个规则对象
- 表示对该规则取反
json
{
"not": {
"playStatusIs": ["finished"]
}
}inCollection
用于筛选收藏名称,值为字符串数组,每个元素为一个收藏名称。
json
{
"inCollection": ["collection1", "collection2"]
}gameNameNot
用于排除指定游戏,值为字符串数组,每个元素为一个游戏名称。该规则会同时匹配游戏当前名称与原名。
json
{
"gameNameNot": ["GameA", "GameB"]
}playStatusIs
用于筛选游玩状态,值为字符串数组,每个元素为一个游玩状态名。
json
{
"playStatusIs": ["finished", "multiple"]
}可选值说明:
"unplayed":未开始"playing":游玩中"partial":部分完成"finished":已完成"multiple":多周目"shelved":搁置中
示例
默认配置
默认情况下不会排除任何游戏:
json
{
"gameNameNot": []
}筛选游玩状态时保留全局黑名单
json
{
"and": [
{ "playStatusIs": ["playing"] },
{ "gameNameNot": ["game1", "game2"] }
]
}针对每个收藏精细化筛选
json
{
"or": [
{
"and": [
{ "inCollection": ["TODO"] },
{ "playStatusIs": ["unplayed", "playing"] }
]
},
{
"and": [
{ "inCollection": ["good1", "good2"] },
{ "playStatusIs": ["finished", "multiple", "partial"] }
]
}
]
}