JamesFlare1212
5f630f8599
perf(api): optimize cookie validation with fail-fast strategy
...
Before: Pre-validate cookie before every request (2-4 API calls per activity)
After: Direct request, only validate on 4xx error (1-2 API calls per activity)
Changes:
- Remove pre-validation step in fetchActivityData
- Keep existing 4xx error handling with re-login logic
- Add debug log to track cookie usage
Impact: ~20-30% reduction in API calls for normal scenarios
Benefit: Faster scanning, less load on engage API
2026-04-06 21:37:06 -04:00
JamesFlare1212
0b9a42c7f3
fix(auth): add login lock to prevent concurrent Playwright login attempts
2026-04-06 18:25:52 -04:00
JamesFlare1212
a8f468a497
feat: 使用 Playwright 实现自动化 cookie 获取和验证
...
主要变更:
- 新增 Playwright 登录认证服务 (services/playwright-auth.ts)
- 重构 get-activity.ts 使用 Playwright 替代 Axios 登录
- 实现自动 cookie 过期检测和重试机制
- 优化 Docker 配置支持 Playwright 浏览器运行
- 添加启动脚本自动验证和刷新 cookies
- 完善错误处理:区分 4xx(认证失败) 和 5xx(服务器错误)
技术细节:
- 删除旧版 login_template.txt 和 nkcs-engage.cookie.txt
- 添加 startup.sh 启动时自动验证 cookies
- 改进 cookie 验证逻辑,添加指数退避重试
- Dockerfile 安装 Playwright 系统依赖
- docker-compose.yaml 添加 volumes 和 health checks
测试:
- 添加 auth.spec.ts 自动化测试
- 添加 get-cookies.ts 和 test-cookies-validity.ts 工具脚本
- 验证 401/500/000 等错误场景处理正确
2026-04-06 16:05:38 -04:00
JamesFlare1212
cb7f99dc09
update engage login template
2025-12-09 19:31:32 +08:00
6ae25329e9
Update engage-api/login_template.txt
2025-08-29 09:48:08 +02:00
JamesFlare1212
7ba5f8f00f
feat: skip duplicate image on remote
2025-05-12 23:46:25 -04:00
JamesFlare1212
8598571f72
improve: code structure
2025-05-12 21:45:57 -04:00
JamesFlare1212
2100bd04ca
improve: semesterCost and poorWeatherPlan format
2025-05-12 20:37:26 -04:00
JamesFlare1212
2543e56ec4
init: port to typescript and bun
2025-05-10 23:39:39 -04:00