
openGym训练中实时检测PR个人新纪录是怎么被抓到的【免费下载链接】openGymSelf-hosted gym body-weight tracker — plan routines, log workouts (supersets, warm-ups, cardio), see which muscles are trained, fatigued or detrained, import from FitNotes/Strong/Hevy, passkey login. Your data, your server.项目地址: https://gitcode.com/GitHub_Trending/op/openGymopenGym 是一款自托管的健身房与自重训练追踪器你可以规划训练计划、记录训练超级组、热身、有氧、查看哪些肌肉被练到、疲劳或生疏还能从 FitNotes/Strong/Hevy 导入数据。很多人关心一个很燃的细节——PR个人新纪录是怎么被自动抓到的这篇文章带你完整拆解 openGym 的 PR 判定机制哪些组数算数、辅助器械为什么越低越好、改日期后 PR 徽章为什么会重新计算。什么才算新纪录先看判定规则openGym 的 PR 逻辑核心就一条完成组中最好的那组超过了该动作历史最高才算 PR。关键在于最好是怎么定义的它跟随动作的计量模式动作模式PR 比较对象例子负重weight最重的完成组深蹲 100kg → 102.5kg 是新纪录次数reps最多完成次数引体向上 8 次 → 9 次是新纪录计时time最长保持平板支撑 60s → 75s 是新纪录有氧cardio训练时长跑步 20min → 25min三条硬规则值得注意热身组一律排除不参与任何比较没记录重量不算纪录——prev为 0 或新值为 0 时都不会触发 PR平纪录不追加徽章只有首次达到历史最高的那一次训练会被标记之后再举同样重量不会多出一堆奖杯。这条规则写在 exercise-history.js 的注释里PR 标在首次达到全时最佳的那次训练上而不是每次追平它的训练上。PR 检测三步骤记录、结算、标注1. 记录时不做判断训练进行中的每一组都只被如实存入日志。判定逻辑被刻意设计成纯函数与 UI 解耦方便单独测试。2. 结束训练时一次性结算结束训练时openGym 会对每个动作取出该次训练中的最佳完成组bestWeightForEntry与该动作的历史最高比较命中的动作 id 写入该次训练的prs字段——这就是你训练卡片上的 PR 徽章来源结算入口finish-workout.js比谁强的核心函数beatsWeightexercises.js3. 历史页与卡片上的展示动作历史页issue #43会把过去 10 次该动作的训练列成曲线并给prId首次破纪录的那次训练打上 PR 标记见 exercise-history.js训练卡上的Best setissue #173回答上次状态不好我到底能上多重它跨所有计划查找该动作的历史最佳组见 exercise-history.jsAI 教练小结里也会统计 N new personal records文案见 coach-demo.js。辅助器械为什么重量更低反而是破纪录这是 openGym 里最巧妙的一条规则。在坐姿推胸机这类辅助器械上你输入的不是扛了多重而是机器帮你顶起多重——帮助越少 实力越强。所以比较方向整个反过来普通动作是新值 旧值才破纪录辅助器械是新值 旧值assistance 更小才算。统一封装在beatsWeight里exercises.js行为由配套测试保证beatsWeight(推胸机, 20, 30)→ ✅ 新纪录帮助从 30kg 减到 20kgbeatsWeight(推胸机, 40, 30)→ ❌ 帮助变多不算beatsWeight(推胸机, 0, 30)→ ❌ 没记录重量不算纪录完整用例见 assisted.test.jsissue #232 正是这条规则的直接产出。改了日期PR 徽章会被重写PR 是关于之前发生了什么的声明所以时间顺序一变徽章就可能失效。openGym 为此写了专门的rebuildPrHistoryworkout-date.js移动一次训练到新的日期/时间后所有相关动作的徽章按新时间线重新推导规则刻意不对称移动可以取消别人已被推翻的徽章这是纠正但只有被移动的那次训练能新获得徽章发新徽章是发明从 FitNotes/Strong/Hevy 导入的历史数据统一以空徽章入库这样哪怕你随手挪了一个日期一年前的导入记录也不会突然冒出一堆奖杯。这正是 openGym 数据同步模型中纯函数可测试思路的体现——同样的机制也保证多设备同步时徽章一致小结PR 机制的四个要点只有完成组参与比较热身组被排除按模式选指标负重比重量、自重比次数、计时比秒数、有氧比分钟辅助器械反向判定机器帮助更少才是破纪录issue #232PR 徽章可重算移动训练日期会触发全量重推导平纪录不追加徽章。如果你想在自己的服务器上跑一套可以参考自托管指南 docs/SELF_HOSTING.md 与 docker-compose.yml数据完全掌握在自己手里——你的每一次 PR 也如此。【免费下载链接】openGymSelf-hosted gym body-weight tracker — plan routines, log workouts (supersets, warm-ups, cardio), see which muscles are trained, fatigued or detrained, import from FitNotes/Strong/Hevy, passkey login. Your data, your server.项目地址: https://gitcode.com/GitHub_Trending/op/openGym创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考