将WakeUp课程表的分享口令转换为标准ICS日历文件的Web API服务。
- 🔓 解析WakeUp课程表分享口令
- 📅 生成标准iCalendar (ICS) 格式文件
- 🌐 RESTful API接口
- ⚙️ 灵活的配置选项
- 📱 支持导入到任何日历应用(Google Calendar、Outlook、Apple Calendar等)
pip install -r requirements.txt复制 .env.example 为 .env 并填写配置:
cp .env.example .env必需配置:
APK_PATH: WakeUp APK文件路径(用于提取签名信息)ANDROID_ID: 16位十六进制设备ID(如0000000000000000)
注意:学期开始日期会自动从课程表数据中读取,无需配置 SEMESTER_START_DATE。
python app.py或使用uvicorn:
uvicorn app:app --host 0.0.0.0 --port 8000服务将在 http://localhost:8000 启动。
直接访问 http://domain:port/<分享口令> 即可获取ICS文件:
# 浏览器直接访问
http://127.0.0.1:62778/2bce137ad56d4ad19539c79834647dac
# 或使用curl下载
curl http://127.0.0.1:62778/2bce137ad56d4ad19539c79834647dac -o schedule.icscurl -X POST http://localhost:62778/parse \
-H "Content-Type: application/json" \
-d '{"code": "你的分享口令"}'curl -X POST http://localhost:62778/generate-ics \
-H "Content-Type: application/json" \
-d '{
"code": "你的分享口令",
"semester_start": "2024-09-01",
"reminder_minutes": 15
}' \
--output schedule.icscurl http://localhost:62778/health启动服务后访问:
- Swagger UI:
http://localhost:62778/docs - ReDoc:
http://localhost:62778/redoc
启动服务后,直接在浏览器访问:
http://127.0.0.1:62778/你的分享口令
浏览器会自动下载 schedule.ics 文件,可直接导入到:
- Google Calendar
- Apple Calendar (iCal)
- Outlook
- 其他支持iCalendar格式的日历应用
# 下载ICS文件
curl http://127.0.0.1:62778/2bce137ad56d4ad19539c79834647dac -o mycourse.ics
# 查看课程表JSON数据
curl -X POST http://127.0.0.1:62778/parse \
-H "Content-Type: application/json" \
-d '{"code": "你的分享口令"}'| 配置项 | 说明 | 示例 |
|---|---|---|
| APK_PATH | WakeUp APK文件路径 | WakeUp课程表_6.1.70.apk |
| ANDROID_ID | Android设备ID | 0000000000000000 |
注意:学期开始日期和作息时间会自动从课程表数据中读取,无需手动配置。
| 配置项 | 说明 | 默认值 |
|---|---|---|
| SDK_VERSION | Android SDK版本 | 35 |
| DEVICE_MODEL | 设备型号 | Pixel 7 |
| DEVICE_BRAND | 设备品牌 | google |
| API_HOST | WakeUp API地址 | https://api.wakeup.fun |
| REQUEST_TIMEOUT | 请求超时时间(秒) | 15.0 |
| REMINDER_MINUTES | 上课前提醒时间(分钟) | 15 |
| SEMESTER_START_DATE | 覆盖课程表的学期开始日期(可选) | 2024-09-01 |
| HOST | 服务监听地址 | 127.0.0.1 |
| PORT | 服务监听端口 | 62778 |
WakeUp2ICS/
├── .env.example # 配置模板
├── .env # 实际配置(不入库)
├── .gitignore # Git忽略文件
├── requirements.txt # Python依赖
├── app.py # FastAPI主程序
├── decoder.py # WakeUpDecoder包装模块
├── ics_generator.py # ICS文件生成器
└── README.md # 本文件
本项目依赖 WakeUpDecoder 提供核心的口令解析功能。
从官方渠道或应用商店下载WakeUp课程表应用的APK文件。
请填写使用过WakeUp课程表的设备的Android ID(可使用DevCheck查看),否则会命中反作弊
- 确认学期开始日期配置正确
- 检查课程时间是否超出合理范围
- 尝试使用不同的日历应用导入
检查:
- API_HOST配置是否正确
- 网络连接是否正常
- 防火墙设置
本项目遵循 Apache 2.0 许可证。
感谢 GPT-5.5 的逆向支持 感谢 opus-4.8 完成本项目