把《蔚蓝档案》的日程装进日历里:BlueArchive.ics
作为《蔚蓝档案》玩家,你是不是也经常这样:打开游戏才发现卡池还剩一天,或者总力战已经结束了?
游戏公告和 wiki 虽然都有排期,但总得主动去查,稍不留神就错过。
所以我写了一个小工具 —— BlueArchive.ics。它会自动抓取卡池、活动、总力战的信息,生成标准的 .ics 日历文件。订阅之后,所有日程直接显示在你的手机或电脑日历里,再也不用记时间了。
✨ 它能做什么
- 覆盖三类事件:卡池、活动、总力战/大决战
- 支持三个服务器:国服(cn)、国际服(in)、日服(jp)
- 智能合并卡池:
/ba.ics和/card/merged.ics会自动合并时间重叠的卡池,日历不会出现重复条目 - 标准日历格式:兼容 Google Calendar、Apple 日历、Outlook 等几乎所有支持
.ics的应用 - 一次订阅,自动同步:后续卡池更新无需重新添加,日历会自动刷新
📱 实际效果
订阅之后,当前和即将到来的卡池、活动、总力战都会清晰列在你的日历上:
| 月视图 | 日程视图 |
|---|---|
在日历中订阅(月视图) | 在日历中订阅(日程视图) |
🚀 快速上手
方式一:直接订阅(推荐)
你不需要部署任何东西。在日历应用(或 ICSx5 等日历订阅应用)里添加一个订阅链接即可:
https://ba-ics.thisisxd.top/cn/ba.ics把链接中的 cn 换成 jp 或 in,就能切换到对应服务器。
方式二:自己部署
如果你想跑在自己的服务器上,也很简单:
git clone https://github.com/This-is-XiaoDeng/BlueArchive.ics.git
cd BlueArchive.ics
poetry install
poetry run uvicorn bluearchive_ics.main:app --host 0.0.0.0 --port 8000启动后访问 http://localhost:8000 即可看到首页和路由说明。
📍 所有可用路由
所有路径都可以加上 /{server}/ 前缀(cn / in / jp),默认为国服 cn。
| 路由 | 说明 | 是否合并卡池 |
|---|---|---|
/ba.ics | 全部事件 | ✅ 合并 |
/all.ics | 全部事件 | ❌ 不合并 |
/card.ics | 仅卡池 | ❌ 不合并 |
/card/merged.ics | 仅卡池 | ✅ 合并 |
/assault.ics | 仅总力战 | — |
/event.ics | 仅活动 | — |
一些例子:
/jp/ba.ics→ 日服全部事件(合并卡池)/cn/card/merged.ics→ 国服合并后的卡池/in/assault.ics→ 国际服总力战
🔧 技术实现
项目非常轻量,核心就两部分:
- 数据采集(
scraper.py)
从 GameKee 蔚蓝档案专区抓取卡池、活动、总力战的起止时间。 - 日历生成(
calendar.py)
用icalendar库把数据转换成标准的 iCalendar 格式。
Web 端用 FastAPI 提供路由,每次请求动态生成 .ics 文件。卡池合并的逻辑也很简单:把时间区间有重叠的卡池合并成一个事件,避免日历上出现一堆重叠的色块。
🌈 最后
BlueArchive.ics 想做一件事:让你把「什么时候抽谁、什么时候打总力」从脑子里彻底移出去,交给日历自动提醒。
如果你是《蔚蓝档案》玩家,不妨试试看。
- 项目源码:GitHub - This-is-XiaoDeng/BlueArchive.ics
- 在线服务:ba-ics.thisisxd.top
- 开源协议:AGPL-3.0
