测试功能

数据库功能目前处于测试阶段。部分数据可能不完整或不准确。

歌曲统计活动更新日志
v2026.4

效能大跃进、新手引导,还有中国地区 Beta

4 月更新(有点晚):效能大幅提升有数据为证、全新新手引导流程、OG 图片大换新、中国地区 Beta 开放、储存空间修复,April Fools 彩蛋也回来了。


4 月更新:慢工出细活

这次比平常晚了一点,抱歉!不过内容真的很扎实。有有数字撑腰的效能提升、更友善的初次使用体验、一些后端健康维护工程,还有中国地区支援的首次公开 Beta。

效能提升

我们在底层做了很多事让 tomomai 跑起来更快,成果也慢慢浮现了。以下是 Largest Contentful Paint (LCP) 改善前后的数字:

地区改善前改善后
日本808 ms432 ms
香港3,180 ms780 ms
中国3,208 ms2,522 ms

日本跟香港进步幅度非常明显。中国还是比我们想要的慢,主要原因是连到 Cloudflare R2 的速度对中国大陆的流量不太友善。我们正在评估中国专用的资产 CDN,应该能在之后的更新让那个数字跟其他地区拉近。

到底改了什么?

CJK 字型子集化

这是这次最大的单一改善。以前用日文、繁体中文或简体中文开 tomomai,每种语言都要一次下载 4–7 MB 的超大字型档。我们用 fonttools 重写了字型处理流程,把每个 Noto Sans CJK 字型(JP/TC/SC)切成 20 个 unicode-range 区块。浏览器现在只会去抓画面上实际出现的那些字,再也不用为那几千个你根本不会看到的字买单。

我们也把 CJK 字型的预载整个拿掉了。现在只有 Inter(拉丁字母)会预载,CJK 字型改成依照语系按需载入。

Bundle 最佳化

除了字型之外,我们还做了几个网路面的改善:

  • 分页动态载入:比较重的 Dashboard 分页(Stats、Recommendations、Export、History、Events、Recents、Developer、Albums)现在只有你切过去的时候才会载入程式码,不会在第一次开页面就全部塞进来。
  • Tree-shaking:帮 lucide-reactrechartsdate-fns 还有几个 Radix UI 套件加了 optimizePackageImports,只有实际有用到的图示跟元件才会被打包进去。
  • Bundle 分析器:接上了 @next/bundle-analyzer(用 ANALYZE=true 开启),之后可以持续追踪这块。

全新 OG 图片

现在在 Discord、Twitter 或任何会显示连结预览的地方分享 tomomai 的连结,就能看到一张正经的预览图,不再是空白卡片了。

网站的所有主要页面都加了自订 Open Graph 图片:

歌曲详细 OG 图片

歌曲详细 - 封面、歌名、歌手、难易度

玩家个人资料 OG 图片

玩家个人资料 - 显示名称、Rating、头像、地区

首页 OG 图片

首页

资料库 OG 图片

资料库首页

OG 图片渲染器现在改用本地内建的字型,不会再在渲染的时候去跟 Google Fonts 要字了,生成速度更快,也不依赖外部服务。

新功能:新手引导流程

新用户再也不会一登入就被丢进 Dashboard 里迷路了。全新的新手引导流程是一个三步骤的动画对话框:

  1. 设定使用者名称:有即时可用性检查跟自动建议,选一个你喜欢的 tomomai 使用者名称。这里也能设定要不要让你的个人资料公开。
  2. 选择地区:从几张有主题风格的卡片里选你的地区。
  3. 完成:可以开始用了。
新手引导步骤 1 - 使用者名称

步骤 1:设定使用者名称

新手引导步骤 2 - 地区

步骤 2:选择地区

旧版只有单一栏位的使用者名称对话框已经拿掉了。已经有帐号的人不受影响。

技术面

中国地区 Beta

中国地区支援正式进入 Beta。CN 用户现在能透过以下两种方式把 tomomai 接到 maimai DX 资料:

  • LXNS(落雪咖啡屋 maimai DX 查分器):OAuth 串接,不需要处理密码。同步玩家资料和分数。最近游玩记录和活动资料这个来源暂不支援。
  • 我们自己的 HTTP Proxy:给想直接用原生 maimai 帐号的玩家。

要把 CN 支援做好,后端需要大幅度的结构调整。我们的主要资料抓取程式码已经长成一个 2,100 行的大怪物。为了能够干净地支援每个地区不同的资料来源,我们把它重构成一个 src/lib/maimai/ 套件,依照领域(player、songs、recents、albums、events)分好资料夹,各自有独立的抓取、解析、存储模组。这样以后新增跟维护资料来源就方便多了。

CN 地区还在 Beta,边边角角可能还不太完美,欢迎到 Discord 回报。

储存:把玩家头像搬到 R2

随着网站规模成长(从 2025 年 10 月每月约 83 次快照,到 2026 年 4 月每月超过 2,190 次),控制资料库储存空间变得越来越重要。

最有效的改善之一就是把玩家头像图示从资料库里搬出去。以前是把 base64 编码的图片资料直接存在 Postgres,每笔平均 36 KB,而且同样的图示在每个快照都重复存一份。把头像搬到 R2 物件储存之后(以内容定址,相同的图示只存一份),资料库可以释放约 315 MB 的空间。等正式环境的搬移完成,资料库总量预计会从约 1,167 MB 降到约 850 MB。

这只是第一步,我们也有计划应对用户持续增加带来的后续储存成长。

April Fools 2026

有人发现 4 月 1 日的 tomomai ai 彩蛋吗?如果错过了,或是想再玩一次,April Fools 模式现在可以用可切换的 Flag 手动开启。在 Flag 覆写设定里打开就好,不用等到明年。


欢迎加入 Discord 聊聊这次的更新:https://discord.gg/jZqQHr3UDq

想帮忙翻译?这边请:https://crowdin.com/project/tomomai

祝大家刷分愉快!

效能大跃进、新手引导,还有中国地区 Beta | tomomai