dota2-match-calendar/CHANGELOG.md
Ching L 6fd21a64b9
All checks were successful
continuous-integration/drone/push Build is passing
修复进行中比赛更新创建重复事件的问题
- 改进事件匹配逻辑,增强基于队伍名称的查找机制
- 即使比分变化(如从1-0到1-1)也能正确识别同一场比赛
- 添加cleanup_duplicates.py工具用于查找和删除重复事件
- 添加delete_duplicates.py用于手动清理特定重复
- 更新CHANGELOG.md记录v3.4版本改动

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 00:09:44 +08:00

4.0 KiB
Raw Blame History

Changelog

v3.4 - 修复重复事件问题

  • 修复进行中比赛更新创建重复的问题
    • 改进事件匹配逻辑,增强基于队伍名称的查找
    • 即使比分变化也能正确识别同一场比赛
    • 避免在比分更新时(如从 1-0 到 1-1创建新事件
  • 新增重复事件清理工具
    • 添加 cleanup_duplicates.py 用于查找和删除重复事件
    • 添加 delete_duplicates.py 用于手动清理特定重复
  • 增强的事件查找机制
    • 不仅通过 ID 查找,还通过 team+tournament 组合查找
    • 支持忽略比分差异的模糊匹配
    • 改进对时间变更和 TBD 更新的处理

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.4

使用建议

推荐使用最新的 v3 版本,它包含所有功能:

./run_sync.sh

或手动运行:

python sync_dota2_matches_v3.py --calendar-id "YOUR_CALENDAR_ID"