Rusted Warfare 反广告列表服务

更干净的公开房间列表,尽量保持原版接入方式不变

BetterGameList 依托 RELAY-CN 自有资源运行,在保障服务稳定性的前提下, 通过 AI 审核、原子发布和失败保留旧结果等机制,为玩家提供更适合长期接入的公开列表源。

兼容协议 MasterServer 1.4 Interface
同步周期 每 30 - 45 秒
核心策略 AI 过滤 + 原子更新

项目概览

这个项目不是重做一套新协议,而是在兼容原版接口逻辑的前提下,提供一个更适合作为主列表源的反广告服务。

  • 与原版 masterserver/1.4/interface API 逻辑兼容,客户端通常只需替换列表地址。
  • 对非官方房间引入 AI 审核能力,并保留继续接入启发式扫描的设计空间。
  • 上游、AI 或数据库任一关键步骤失败时,保留上一版公开列表,不发布不完整结果。
  • 提供状态页与趋势接口,便于观察最近 24 小时的同步与过滤情况。

接入方式

推荐把 BetterGameList 作为主 API,在不可用时回退官方 API。客户端请求参数可以保持原样。

主 API

反广告公开列表接口,可直接作为主列表源接入。

https://list.rw.der.kim/masterserver/1.4/interface

官方 API 回退链路

当主 API 超时、网络失败或响应头不是 CORRODINGGAMES[1.0] 时,再尝试官方接口。

https://gs1.corrodinggames.com/masterserver/1.4/interface
https://gs4.corrodinggames.net/masterserver/1.4/interface

请求示例

客户端请求参数仍然使用原版写法。

https://list.rw.der.kim/masterserver/1.4/interface?action=list&game_version=176&game_version_beta=false

补充接口

如果客户端不便实现回退逻辑,也可以额外接入广告房间列表接口,再结合官方列表做异或处理。

https://list.rw.der.kim/masterserver/1.4/adinterface?action=list
查看 Change.md

工作原理

整个流程围绕“尽量不过早发布新结果”来设计,优先保证对外公开列表的稳定性和一致性。

01

周期拉取上游列表

服务每 30 到 45 秒拉取一次上游房间列表,兼顾实时性与上游压力。

02

官方房间直通,非官方房间进入审核链路

非官方房间会进入额外的 AI 过滤流程,避免把明显广告房间直接暴露到公开列表。

03

AI 批量审核房间摘要

AI 返回允许公开的 UUID 列表。任一批次失败,本轮审核直接判定失败。

04

全部成功后原子更新公开表

只有关键步骤全部成功时,新的公开列表才会一次性替换旧结果。

05

异常时保留旧结果

上游失败、AI 失败或数据库异常时,本轮结果不会对外发布。

服务状态

项目提供状态页和 JSON 趋势接口,用于查看最近 24 小时的同步、过滤与放行趋势。

https://list.rw.der.kim/masterserver/1.4/server

状态页前端会按需请求 JSON 数据接口,避免数据量增长后把全部统计直接塞进 HTML。

https://list.rw.der.kim/masterserver/1.4/server_api.php?granularity=5

协议能力

除了公开列表本身,项目还保留了常见 action 语义,并对连接字段策略和输入清洗做了补充处理。

  • action=list 返回公开房间列表。
  • action=add 创建房间并写入 room_buffer
  • action=update 更新房间,但不会立即进入公开表。
  • action=remove 通过 id + private_token 删除房间。
  • action=get 获取真实连接 IP 与端口。
  • action=self_info 返回当前请求 IP 和端口开放状态。