Releases: techysy/strava-panel
Release list
v1.3.1
v1.2.3
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
v1.2.0
Strava Panel fnOS 应用 v1.2.0
新增 / Added
- 🔐 API Token 认证:数据接口(stats/activities/weekly/export/sync/config)新增访问 token 保护
- 前端面板通过
/api/bootstrap自动获取 token(免认证),行为不变 - agent 用
Authorization: Bearer <token>访问 api_token自动生成,存储在strava.conf(权限 600)
使用 / Usage
TOKEN=$(curl -s http://<NAS>:20127/api/bootstrap | jq -r '.api_token')
curl -s -H "Authorization: Bearer $TOKEN" "http://<NAS>:20127/api/stats?start=2026-01-01"兼容性 / Note
- 未带 token 的 API 请求返回 401
- 前端面板自动处理 token,无需手动配置
下载 / Assets
- strava-1.2.0.fpk — url 版(新标签页打开)
- strava-1.2.0-iframe.fpk — iframe 版(fnOS 桌面窗口)
v1.1.5
Strava Panel fnOS 应用 v1.1.5
修复 / Fixes
- 🛠️ status 退出码修复:
cmd/main status在服务未运行时返回退出码 1(非零),与 metacubexd/9router 一致 - 根因:fnOS 依赖 status 退出码判断应用是否运行。之前 strava 的 status 在 stopped 时错误返回 0(被误判为 running),fnOS 从不调用 start,服务无法自动启动
- 现在 fnOS 会正确调用 start,服务以 strava 用户运行、开机自启(PPID=1)
下载 / Assets
- strava-1.1.5.fpk — url 版(新标签页打开)
- strava-1.1.5-iframe.fpk — iframe 版(fnOS 桌面窗口)
安装 / Install
飞牛 App Center → 手动安装 → 选择 fpk。
打开面板(端口 20127)→ 填入 Strava 凭据 → 保存并验证,自动同步全量历史。
v1.1.2
Strava Panel fnOS 应用 v1.1.2
修复 / Fixes
- 🛠️ cmd/main 启动可靠性:改用
setsid python3 -u(无缓冲)+ 更强的残留进程清理 - 解决后台启动偶发
Address already in use/ 连接拒绝问题 - fnOS App Center 现可可靠自动启动服务(NAS 重启后服务自愈)
下载 / Assets
- strava-1.1.2.fpk — url 版(新标签页打开)
- strava-1.1.2-iframe.fpk — iframe 版(fnOS 桌面窗口)
安装 / Install
飞牛 App Center → 手动安装 → 选择 fpk。
打开面板(端口 20127)→ 填入 Strava 凭据 → 保存并验证,自动同步全量历史。
v1.1.1
Strava Panel fnOS 应用 v1.1.1
更新 / What's New
- 📅 统计周期切换:本年度 / 本月份(默认本年度,明确统计边界)
- ⚡ 平均速度:最近骑行列表新增均速列(km/h)
- 🗄️ SQLite 本地缓存(v1.1.0 加入)
- 📤 agent 透出接口 /api/export(v1.1.0 加入)
下载 / Assets
- strava-1.1.1.fpk — url 版(新标签页打开)
- strava-1.1.1-iframe.fpk — iframe 版(fnOS 桌面窗口)
安装 / Install
飞牛 App Center → 手动安装 → 选择 fpk。
打开面板(端口 20127)→ 填入 Strava 凭据 → 保存并验证,自动同步全量历史。
v1.1.0
Strava Panel fnOS 应用 v1.1.0 — SQLite 本地缓存 + agent 透出接口
更新 / What's New
- 🗄️ SQLite 本地缓存:骑行数据缓存到 NAS(strava.db),读取更快、离线可看历史
- 🔄 手动同步:面板「立即同步」按钮 + /api/sync
- 📤 agent 透出接口:/api/export (json/csv) 供本地 Hermes agent 直接查询
- 🔍 查询增强:/api/stats /api/activities 支持 start/end/type/limit 过滤
- 🔒 凭据安全:strava.conf / strava_tokens.json 权限 600
下载 / Assets
- strava-1.1.0.fpk — url 版(新标签页打开)
- strava-1.1.0-iframe.fpk — iframe 版(fnOS 桌面窗口)
安装 / Install
飞牛 App Center → 手动安装 → 选择 fpk。
打开面板(端口 20127)→ 填入 Strava 凭据 → 保存并验证,自动同步全量历史。
v1.0.1
Strava Panel fnOS 应用 v1.0.1
更新 / What's New
- 🌗 日夜模式:暗/亮主题切换(记忆选择,默认跟随系统)
- 🌐 i18n 多语言:中/英双语界面切换
- 🧹 移除多余的 fnOS 设置页面,统一由面板主页配置凭据
下载 / Assets
- strava-1.0.1.fpk — url 版(新标签页打开)
- strava-1.0.1-iframe.fpk — iframe 版(fnOS 桌面窗口)
安装 / Install
飞牛 App Center → 手动安装 → 选择 fpk。
打开面板(端口 20127)→ 填入 Strava 凭据(Client ID / Client Secret / Refresh Token)→ 保存并验证。
v1.0.0
Strava Panel fnOS 应用 v1.0.0 — 骑行数据面板
功能 / Features
- 🔑 凭据管理:面板内配置 Strava Client ID / Client Secret / Refresh Token
- 🔄 Token 自动刷新:Strava access_token 6h 过期自动 refresh,无需手动干预
- 📊 可视化面板:骑行次数、总距离、总时长、总爬升 + 每周图表 + 最近骑行
- 🔒 纯 Python 标准库零依赖后端,端口 20127(高位不常见)
下载 / Assets
- strava-1.0.0.fpk — url 版(新标签页打开)
- strava-1.0.0-iframe.fpk — iframe 版(fnOS 桌面窗口)
安装 / Install
飞牛 App Center → 手动安装 → 选择 fpk。
打开面板后填入 Strava 凭据(Client ID / Client Secret / Refresh Token)→ 保存并验证。
凭据获取
https://www.strava.com/settings/api → 查看 Client ID / Client Secret
Refresh Token 需 OAuth 授权(勾选 activity:read_all)。