Skip to content

v1.2.3

Choose a tag to compare

@techysy techysy released this 03 Sep 04:34
· 3 commits to master since this release

v1.2.3 — Strava OAuth 全链路打通 + 图表对齐官方

🎯 Strava OAuth 授权彻底打通(核心)

修复多个相互叠加、导致「授权成功却拿不到数据」的问题:

  • 🔑 修复 token 被误删save_config 原无条件删除 strava_tokens.json,授权/刷新成功后 token 随即丢失、缓存永远不存在(每次轮询重复刷新)。改为仅当 refresh_token 实际变更才清缓存;exchange_code/refresh_token 先保存 config 再写 token。
  • 修复并发竞态:面板 /api/info 每秒轮询会触发 refresh_token(),与 OAuth 授权写 token 并发互相覆盖(新 token 被旧 refresh 覆盖回 read-only)。用 RLock 串行化 token/config 读改写。
  • 🎯 修复 scope 误判:Strava 返回 scope 为空格分隔(activity:read_all read),原按逗号 split(",") 误判缺 activity:read_all,导致授权成功的 token 也被判失效。现兼容逗号/空格分隔。
  • 🔗 修复回调地址:不再自动跟随访问入口——仅内网/本机 Host 推导;公网中转域名(office.app.5ddd.com)与残缺相对路径(/oauth/callback)一律拒绝,引导显式配置完整 http://<NAS内网IP>:20227/oauth/callback

📊 骑行数据图表对齐官方 Strava

  • 时间筛选合并为一组 7 选项(近7天/近1月/近3月/近6月/本年度/近12月/所有),去掉原双行重叠按钮与 7D/YTD 英文简写,全量 i18n。
  • 粒度按官方:近7天/近1月→每日;近3月/近6月→每周;本年度/近12月→每月;所有→每年。
  • 空桶补全:每日/周/月补全范围内所有时间点,无骑行返回 0,图表时间轴不断裂。
  • Y 轴 ×1.2 顶部留白、曲线平滑(Catmull-Rom 贝塞尔)、描边非缩放(桌面细线)、数值保留 1 位小数、0 值天不显示数值文字。
  • 时间筛选按钮 flex 自适应换行,移动端整洁。

🖼️ 其他

  • 凭据回显免重输:设置页自动回填已存凭据,/api/config 拒绝非绝对 URL 的 redirect_uri。
  • 应用图标 + 网页 favicon 换成官方 Strava 橙色圆角徽标(SVG)。
  • OAuth 诊断:授权失败时记录 Strava 返回的具体原因到日志。

📦 安装

fpk 下载后,在 fnOS App Center 手动安装(普通版 url + 桌面内嵌 iframe 双版本):

# fnOS App Center → 手动安装 → 选择 strava-1.2.3.fpk

首次使用:到 Strava API 设置 注册 Callback Domain 为你的 NAS 内网 IP(不带端口,如 192.168.31.101),在能访问内网的环境完成 OAuth 授权。

Full Changelog: v1.2.2...v1.2.3