ArcaeaBot是如何查分的?ArcaeaUnlimitedAPI工作原理FAQ
Awbugl
编辑于 2022年04月06日 12:37

 1.      ArcaeaUnlimitedAPI是什么?

            ArcaeaUnlimitedAPI(以下简称为“API”)是一个基于Arcaea安装包的解包数据和arcapi(Arcaea的网络通讯API)的WebAPI项目,目前已有数十个Arcaea Bot/查分工具接入。


2.      API是如何获取数据的?

  • 曲目信息、角色立绘、曲目封面:来源于ArcaeaWiki和Arcaea安装包;

  • 用户游玩数据(查分):模拟Arcaea客户端对arcapi发出请求,处理返回数据。

    • 最近分数:加好友时会返回用户基本信息和最近游玩记录

    • 最高分数:查询好友榜

    • Best30:将所有谱面按定数逆序排序,轮询好友榜 直到 谱面定数 < 地板单曲ptt-2


3.      常见问题 FAQ


  • API是如何测算定数的?

            最近游玩记录中包括单曲ptt,根据算法逆推新曲定数;若某曲目未被查询,API就无法获得定数。


  • 查B30时有时返回 524 Timeout?有时查得很快?

            API目前使用CloudFlare的CDN服务,Timeout默认配置为100s。

            而ptt相对较低的用户在查询Best30时需要查询大多数谱面的排行榜,总体时间经常超过100s的超时限制,被CloudFlare返回524,但此时API仍在后台继续查询。

            Best30数据库具有缓存机制,当您的最近游玩记录与数据库缓存的记录一致时,会直接返回Best30缓存。

            故查询失败后请等待3-5分钟后重新查询一次,大多数情况会成功返回结果。


  • 能不能查R10?

            不能。arcapi只返回最近一次记录,API返回的数据仅为本地数据库查询结果;Best30中的r10均值数据由用户ptt和b30均值计算得到。


  • API如何处理用户数据?

            API会记录关于您的用户信息和游玩记录,且采用标准加密方案加密储存。您的记录会且仅会用于API “基于用户名的查询”和“Best30缓存”两项功能。


  • API的网络架构是什么样子的?需要多少服务器?

目前的网络架构

            API目前共1个域名,1个主服务器,若干 TCP转发节点(其中6个节点为其他开发者赞助)。在这里感谢所有向API提供TCP转发节点的开发者。

            注:TCP转发节点:由于arcapi对单个IP的访问速率做了限制,当短时间需要对arcapi发起大量请求时(e.g. Best30查询)需要一些服务器进行TCP转发从而平衡负载。


  • 作为Bot开发者/Bot搭建者,我应该如何使用API?     请参考 搭建自己的Arcaea查分Bot!Project Andreal 部署简介


  • 什么是Shadowban?为什么我会被Shadowban?

    • Shadowban体现为好友在好友榜看不到您的游玩记录(有人称为“排行榜封禁”)。

    • Shadowban的具体判断机制目前仍未知,因此以下均为推测的可能原因:

      • 616的bug(详见616回复邮件原文)

      • 您的账号在另一设备上登录且上传了多个显著高于ptt水平的分数

      • 您的账号ptt较低且连续上传了7个免费包PM成绩

      • 您的账号在上传分数时未通过arcaea服务器的校验

616回复邮件


  • 查分时出错返回的错误码是什么?

            请查看附表。


  • 其他问题欢迎在评论区提问。


 4.      免责声明

  ArcaeaUnlimitedAPI免责声明:本API基于学习目的开发,不对结果承担任何责任,亦不会保证服务的可用性和质量。本API仅限于有限范围的免费使用;禁止任何形式的商用。Bot开发者使用Lowiro素材造成的后果与本API无关。您应知悉,使用本API提供的服务即违反 《Arcaea 使用条款》中的 3.2-4 和 3.2-6,以及《Arcaea 二次创作管理条例》。由此造成的一切后果,API开发组不予承担任何责任。

 


附表:API错误码表

API错误码表