观前提醒(2023.5.3): Arc查分模块似乎可以回来了(基于ArcaeaUnlimitedAPI+(AUA+)),敬请期待
这下真的风雨飘摇依旧坚挺了

*其实在2018年,KanaChan就已经存在了,但当时并没有表明要添加Arcaea模块的想法(当时开发者连Arcaea是什么都还不知道

2019

2019.1.28,开发者注册了第一个Arcaea账号。入坑了没多久,就想到要不要给Bot加一个查分模块。
为此,开发者找了半天也没找到一个可用的API。Xecus提供的API门槛又比较高。因此开发者在5月左右甚至给616发了邮件要分数查询的API。
当然理所当然的,616拒绝了请求。
2023-04-27T13:49:21.png
之后由于开发者个人原因,这个模块的开发就暂时搁置了。
直到——BotArcAPI仓库(下均简称为"baa")的出现。

八月的某天,开发者突然挖到了baa的仓库。介绍也很干脆——

A fast and convenient Arcaea API for your bot.

当机立断clone了下来,一看是Node.js开发的……
于是同年9月,Arcaea查分模块的第一个版本随着123 SduBot(KanaChan的旧名)的更新发布了。

2020

但总感觉哪里不太过瘾呢……
上文提到的Xecus的API,没过多久就不能用了。(估计是Xecus放弃了维护)
根据baa的README.md,开发者发现了一个讨论群——音游码农群(下均简称为"码农群")。
开发者在码农群收获了大量bot以及开发者的friendship。
直到——八月的QBot大爆炸。

这年八月,运营了近十年的晨风QQ机器人原开发者被抓。
紧接着,从KanaChan第一个版本开始就依赖的酷Q(CoolQ,下均简称为"CQ")运营团队也因为晨风bot东窗事发,怕连着出事,跑路了。
这下可糟了,Kana还得跑,在哪里跑呢……mirai吧。(后来才发现mirai体验还不如CQ
于是开发者带着第三代Kana——123 SduBotR,转投原生支持Java的mirai框架。

2021

但自从换成那个框架后,就不再怎么更新了。毕竟Java写起来还是不如VB.NET舒服的。
直到2021年,开发者又挖到一个好用的框架——先驱框架(现在已经跑路了;下均简称为"XQ")。
一看,居然支持C#!
跟着Awbugl开发的XQCSharpSDK一起,开发者又开始了KanaChan的更新。
不过这次,就真的叫KanaChan了。

之后,开发者用Arcaea查分模块的功能,和其它多个Bot开发者[注1]一起,制作了可能会在未来变得知名的Planet ACGN Journey(下均简称为"pacgnjny")。(但当时没有任何一个开发者意识到这点(x)。
好景不长,616从Arcaea 3.6版本开始,在API请求里增加了一个X-Random-Challenge字段,用于判断请求的合法性。
虽然TheSnowfield还有Benpigchu等一众开发者通过逆向工程完整了解了字段值的算法实现,但616紧接着又更新3.6.1,将算法更换了。
那一段时间,和616的艰苦拉锯战,消耗掉了一众开发者的耐心。
终于,有人发现问题了。
没错,还是TheSnowfield发现的。
因为当时baa还是开源状态,每次baa更新为支持算法的版本后,616都能搜到,然后换算法。
于是,TheSnowfield决定不再开发baa了。(这也就是为什么上文的baa仓库名不是BotArcAPI而是BotArcAPIs-Memories,因为这已经成为了回忆。)
那之后呢?
Awbugl带头,决定对baa闭源,并进行一定修改。
由于Arcaea 3.6.4版本后,616就没改过底层算法实现(SBox和Hash什么的在后续版本更新中稍有变动,但主要的算法实现并没有变动),因此Awbugl等一众开发者将这个算法实现封装成了名为h364的算法(h意为hash,364意为这个算法是从Arcaea 3.6.4版本开始使用的)。(当然还有一个专门用来加密游戏二进制中API地址的c364(c=crypt)算法,不过在这里就没必要提了;c364h364一块成为了开发者中熟知的364算法套件。)

2022

由于开发者联合起来和616谈判,最终616在2022年初同意提供一个拥有受限功能的API,用于查分Bot的开发。
这个API即为ArcaeaLimitedAPI(下均简称为"ala")。
而上文由Awbugl开发的闭源查分项目,初始几个版本仍然延续baa的名字,但……

Awbugl:既然616给开发者提供的受限API叫ArcaeaLimitedAPI,那干脆我们这个API就叫ArcaeaUnlimitedAPI吧!

这便是现阶段的ArcaeaUnlimitedAPI(下均简称为"aua")的由来。
而Kana在这期间,由于XQ的跑路,一度因找不到合适的开发框架而暂时停运。
直到同样由TheSnowfield开发的QBot开发框架Konata.Core出现。
Konata.Core是纯C#实现的!!
这下,Kana再也不用担心开发框架跑路了,因为Konata是开源的。
不仅如此,2022年9月,Kana终于拥有了自己的Best30图查UI!(之前均为文字形式的Best30)
账号来源@AFranceBall

2023

即将更新Arcaea 4.4.4时,因为Arcaea Online的付费订阅功能就是用来查Best30(下均简称为"b30")用的,而查分Bot本身就可以免费不限量提供查询b30的模块,因此616在4月21日(更新前6天)对所有拥有ala的请求token的Bot开发者发了封邮件(意为"我们要关闭ala了"):

Dear Developer,

We are writing to inform you that the Arcaea Limited API provided by lowiro will be formally sunset on the 26th April 2023.
From April 26th 2023 00:00 GMT the service will be shut down permanently and you will no longer be able to make calls to any endpoints.

We thank you very much for your use of the service and the tools you have created for the player community over the past years.

Kind regards,
lowiro - API Team

但谁也没想到,616会做事做这么绝——在4.26下午5点左右,616开始查封aua底层使用的大量查分用账号(也不是直接封禁,而是表现为在游戏里看不到排行榜数据,所有的排行榜数据均显示为空)。
那就批量注册账号吧!
对不起,616对账号注册逻辑进行了更改,现在不仅要验证邮箱,还要经过hCaptcha的验证码!
由于这个原因,Kana和其它基于aua的查分Bot一样,结束了对Arcaea查分的支持。(Kana不只是能查分,还有其它很多功能,因此这个对于Kana的后续开发并没有什么实质性的影响。)

Good bye, Arcaea Unlimited API.  
Good bye, all score-probing bot users (players).  
See you next rhythm game!
Last modification:May 3, 2023
如果觉得我的文章对你有用,请随意赞赏