dota2-match-calendar/CHANGELOG.md
Ching L dd5ba77e1e 支持进行中比赛的实时比分更新
- 使用 BeautifulSoup 正确解析 HTML 结构,提取队名、比分等信息
- 区分系列赛进行中(如 Bo3 1-0)和已完成状态
- 新增 update_event_with_score 方法处理进行中比赛的比分更新
- 扩展处理时间范围到最近 12 小时,确保捕获进行中的比赛
- 修复了 Aurora vs YkBros 等比赛比分无法识别的问题

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-05 18:04:36 +08:00

86 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Changelog
## v3.3 - 支持进行中比赛的实时比分
- **使用 BeautifulSoup 解析 HTML 结构**
- 重写了 `_parse_match` 方法,使用 DOM 结构而非正则表达式
- 准确提取队名、比分、赛制和锦标赛信息
- 解决了 "Aurora1:0(Bo3)YkBros" 格式的解析问题
- **区分系列赛进行中和已完成状态**
- 新增 `has_score` 标记,表示比赛是否有比分
- Bo3 需要 2 胜才标记为完成Bo5 需要 3 胜
- 进行中的比赛显示当前比分(如 1-0但不显示✓标记
- **新增进行中比分更新功能**
- 添加 `update_event_with_score` 方法处理进行中比赛
- 在日历标题显示实时比分(如 "1-0 Team1 vs Team2"
- 在描述中添加 "📊 CURRENT SCORE" 标记
- **扩展处理时间范围**
- 处理最近 12 小时内的比赛,捕获正在进行的比赛
- 确保进行中的比赛比分能及时同步
## v3.2.1 - 修复比分识别问题
- **修复错误的比分解析**
- 修复了将日期时间误识别为比分的问题(如 "19-00"
- 改进比分识别逻辑,只在包含 "vs" 的上下文中查找比分
- 添加比分范围验证0-5排除不合理的数值
- 增强时间模式识别,避免将时间戳识别为比分
## v3.2 - TBD 比赛优化
- **智能去重机制**
- 相同时间、相同轮次的多个 TBD 比赛只保留一个代表
- 避免日历中出现大量重复的 TBD 条目
- **TBD 比赛自动更新**
- 当 TBD 比赛的队伍确定后,自动更新对应的日历事件
- 通过时间和锦标赛信息智能匹配 TBD 事件
- 新增 `update_event_with_teams` 方法专门处理队伍更新
- **改进的事件匹配逻辑**
- 三层匹配机制ID 匹配 → 队伍+锦标赛匹配 → 时间+锦标赛匹配
- 确保 TBD 比赛更新后仍能正确跟踪
## v3.1 - 格式优化更新
- **新的标题格式**:
- 之前: `Dota 2 - The International 2025: Team1 vs Team2`
- 现在: `Team1 vs Team2 [The International 2025]`
- **简化的完成标记**:
- 之前: `[COMPLETED] Dota 2 - Tournament: Team1 vs Team2`
- 现在: `✓ 2-0 Team1 vs Team2 [Tournament]`
- 移除了 "Dota 2" 字样,让日历更简洁
- 比分紧跟在✓后面,更加紧凑
## v3.0 - 时间变更检测
- 新增比赛时间变更自动检测
- 当赛程调整时自动更新日历
- 支持 `--no-time-updates` 参数跳过时间更新
## v2.0 - 比赛结果更新
- 自动获取已完成比赛的结果
- 更新日历事件显示比分和获胜队伍
- 支持 `--no-results` 参数跳过结果更新
## v1.0 - 基础同步
- 从 Liquipedia 获取 Tier 1 比赛
- 同步到 Google Calendar
- 避免重复添加
- 支持 dry-run 模式
## 功能对比
| 版本 | 同步比赛 | 更新结果 | 时间变更 | 新格式 | TBD优化 | 实时比分 |
|------|---------|---------|---------|--------|---------|----------|
| v1.0 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |
| v2.0 | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ |
| v3.0 | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ |
| v3.1 | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ |
| v3.2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ |
| v3.3 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
## 使用建议
推荐使用最新的 v3 版本,它包含所有功能:
```bash
./run_sync.sh
```
或手动运行:
```bash
python sync_dota2_matches_v3.py --calendar-id "YOUR_CALENDAR_ID"
```