回看自己过去 4 年的运动数据,是一种什么样的体验?

简介: 回看自己过去 4 年的运动数据,是一种什么样的体验?

Hello 各位早上好。

今天想和大家分享一件在我看来非常酷的事情,如下图,将自己过去 4 年的跑步数据放到一个网站上,数据来自 Keep App,由于在跑步的时候开启了 GPS 定位,因此右侧的地图还会显示我们跑过的路径。

我的运动记录 Running Page:
https://running-page-three.vercel.app/
   

顺提一提,之前有一段时间我用的是 Apple Watch 的「健身记录」来记录跑步数据,有不少数据无法同步到 Keep 中,导致网站上显示的 2021 年运动记录只有 28 次。

苹果推出的 App 都比较封闭,目前暂时无法从「健身」或「健康」App 中导出数据,如果你也要想要制作上面的跑步网站,你平时使用的记录跑步数据的 App,最好是下面这些:

  • Keep
  • 悦跑圈
  • 咕咚  
  • Garmin
  • Garmin-CN
  • Nike Run Club  
  • Strava
  • GPX
  • Nike+Strava(Using NRC Run, Strava backup data)
  • Strava_to_Garmin(Using Strava Run, Garmin backup data)  

之所以推荐这些 App,是因为制作网站所用到的 GitHub 项目「running_page」,目前也只支持这些 App。

GitHub 项目「running_page」地址:
https://github.com/yihong0618/running_page
   

这个开源项目的作者是 @yihong 老师,在这个时间点介绍这个项目也比较巧,最近刚好是这个项目开源一周年的节点。

8678bc8ac6c4ddea8dd4080fcd74f8b4_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

作者 @yihong 老师为了让更多的人可以通过这个项目、制作出属于自己的跑步页面,他在 GitHub 的 README 文档中也提供了比较详细的使用说明。

使用之前的说明

在正式使用这个项目之前,你的电脑最好先安装下面这些软件:

  • Python3  
  • Git    
  • VS Code:代码编辑器,不是必须的,但为了后面更好地编辑项目中的一些代码,推荐安装  

下载/克隆所有代码文件

会使用 Git 命令的朋友,可以通过 Git 将远端的代码文件克隆到电脑本地:


git clone https://github.com/yihong0618/running_page.git

如果你不会使用 Git 命令,可以通过仓库右上角的 Download 按钮下载所有文件的压缩包,记得要对文件进行解压。

d6f28c66c58b40c30e72df68086136c4_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

安装及测试

下载文件之后,我们要终端(Windows 上称为 cmd 或者 Powershell)中逐行运行下面的命令。

pip3 install -r requirements.txt
yarn install
yarn develop

运行之前,请确保你当前所在的路径,是代码文件夹所在的位置。

以我为例,我将下载的代码文件夹 running_page 放在了电脑的 workspace/running_page路径下。

e995dae76f3539c72b11f077fff7b1a1_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

因此,在运行前面的 3 个命令之前,我需要先使用 cd 命令,进入到对应的路径下方。


cd workspace/running_page/running_page

4d3bee2c3de25c8c1e13667461914b40_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

进到正确的路径下,再逐次运行前面的 3 个命令。

不过,由于不同电脑的环境配置存在着差异,在运行那 3 个命令的过程中,你可能也会像我一样,遇到命令运行后提示错误的情况。

这里给出我在运行这 3 个命令的过程中,遇到的 3 个问题及相应的解决方法:  

查看网页的雏形

前面 3 个命令运行无误的话,最后可以在终端中看到下图的提示:在浏览器中打开网页 http://localhost:8000/,就可以看到网站的雏形。

08038edfbdbabd85c4996b003cfd52aa_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

网站雏形的数据来自项目的原作者,为了得到我们自己专属的网站,还需要修改和删除一些文件。

修改代码文件

修改代码文件时,可以使用电脑自带的记事本打开代码文件,也可以使用前面提到的 VS Code。

首先打开 .github/workflows 下的 run_data_sync.yml 文件,定位到第 22 行代码的位置。

RUN_TYPE填入你平时在用的运动 App,例如 keep,下面的 ATHLETE、TITLE、GITHUB_NAME、GITHUB_EMAIL,分别更改为自己的昵称、最终呈现在网站的热力图的标题、GitHub ID 和邮箱。

例如我将 TITLE 设置为 Phh95 Running,最终就会呈现为热力图顶部的标题。

87f31a8cb740c451a4a6528edfc20c71_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

接着定位到代码的 117 行,这里需要修改一下变量的名称,将 secrets 后面的 GITHUB_TOKEN 修改为 G_T

这里之所以要修改变量的名称,是因为 GitHub 不允许以 GITHUB 为开头来命名密钥。

打开 gatsby-config.js 文件,修改下图框选出来的部分参数:

  • siteTitle:跑步网站的标题,默认是 Running Page  
  • siteUrl:跑步网站的网址,这里先不填,后续我们通过 vercel 部署得到网址之后,再来填写  
  • logo:网站 logo 的图床链接    

  • navLinks:网站右上角的两个链接,一个是 Blog,一个是 About。如果你有个人博客的话,可以将 Blog 的 url 替换成自己的博客网站。  

c19b42c91b752a77b9057e3e8478bbc2_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

接着来到 assets 文件夹,只保留其中的 3 个文件:start.svgend.svggrid.svg,将其余的 svg 文件删除。

5984e82b7c11e8a76c4788f3489d22cf_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

接着来到 scripts 文件夹,删除其中的 data.db 文件。

来到 src/static 文件夹,删除其中的 activities.json 文件。

84d18cd4479f7aae17f4b15f57831843_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

导出运动数据

前面删除的文件中,包含了作者原先的运动数据,为了最后可以在网站上看到自己的运动数据,我们还需要从运动 App 中导出我们的运动数据

作者在 README 文档中,对不同运动 App 如何导出数据,也进行了相关的说明。

22a08a6d0d2f4a9286205261f6fb6cb2_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

keep App 为例,在终端中运行下方的命令,就会在代码文件夹中的相应位置,生成我们需要的运动数据,具体体现为文件夹中新增了两个文件,分别是 activities.jsondata.db 文件。


python3 scripts/keep_sync.py 注册keep账号的手机号 keep账号的密码


b3080dc6664cac6340f600b5b78ec247_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

到这里,我们就算是完成了代码的修改,接着就是通过 Git,将本地的代码文件夹,上传到远端的 GitHub 仓库。

这个过程具体如何操作,可以查看我之前的一篇文章或者参考网上别人写的文章:

将本地文件/文章上传到 GitHub 的流程    

GitHub 仓库配置密钥和 Token

项目作者在代码中用到了 GitHub 自带的自动化功能 Actions,每天会自动运行一次 Run Data Sync,可以及时地将我们的运动数据更新到网站上。

3feaf1288d59ff808108fdcc6a17822a_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

为了让 Actions 可以自动更新数据,我们也要对 GitHub 仓库进行配置:配置密钥和 Token。

配置密钥,我们要按照下图进行操作,打开仓库的 Settings 页面,左侧切换到 Secrets 选项卡,点击右上角的 New repository secret,需要我们填入密钥名称 Name值 Value

这里的密钥名称取决于你目前正在使用的运动 App,不同 App 的密钥名称存在着区别,查看密钥名称需要打开 .github/workflows/run_data_sync.yml 文件。

以我在用的 Keep 为例,它的两个密钥名称分别为 KEEP_MOBILEKEEP_PASSWORD,它们的 Value 值其实分别对应——注册 Keep 账号的手机号和密码。

fd3c459e1efce6a408f415da61bec40f_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

配好密钥后,我们还需要配置 Token,首先打开网页 https://github.com/settings/tokens,点击右上角的 Generate new token,生成一个新的 Token。

生成 Token 时,有两个注意点,将 Token 的有效期 Expiration 设置为 No expiration(长期有效),勾选下面的所有复选框,将所有权限都打开。

生成的 Token,是一长串英文和数字混合的字符串,点击右侧的复制按钮,复制到剪贴板,接着再回到前面的 Secret 页面,添加一个新的密钥,密钥名称为 G_T,这个名称是我们在前面修改代码的过程中手动改过的,因此这个密钥名称是固定了的,不要再更改了。  

G_T 的 Value 值就是我们刚生成的 Token,粘贴到对应位置即可。

配好密钥和 Token 之后,打开仓库的 Actions 页面,我们来手动运行一次 Actions,看看它能否正常工作。

左侧切换到 Run Data Sync,接着点击右侧的 Run workflow,稍等一会,等待程序运行之后给我们返回的结果。

程序可以正常工作的话,Run Data Sync 左侧应该会有一个绿色的✅图标,如下图标注的数字 4 的位置。

Vercel 部署得到自己的跑步网站

完成前面的所有操作之后,我们所有的准备工作就算完成了,就差最后的临门一脚了,将 GitHub 仓库部署到服务器上,就能得到人人都可以访问的网站了

项目的作者提供了 3 种部署的方案,如下图,这里最推荐使用 Vercel 部署,因为最为简单,不需要过多折腾。

b2d848d3d108aa1b1a2fe898bc6f611a_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

关于如何 Vercel 部署,可以查看作者写的说明文档,因为比较简单,这里就不过多介绍了:

https://github.com/yihong0618/running_page/blob/master/README-CN.md

5f7e8495400fc4ff451a695d6e2b5a3f_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

通过 Vercel 部署,它会自动返回一个网站链接🔗,点击下图的 DOMAINS 下方的链接,就可以看到自己专属的跑步网站啦。    

写在最后

为了弄出这个网站,懂技术的人可能花 20 多分钟就搞定了,不懂技术的我,用了 20 多分钟几倍的时间才勉强弄出来,中间还向项目的原作者问了好几个问题,在此要感谢作者的耐心解答❤️。

整个过程下来,我游走于 想放弃 与 不放弃 之间,做一会停一会,就像玩自己不擅长的游戏那样,很有挫败感,也总在怀疑自己是不是太辣鸡了。。。不适合搞这个,害。

以上,就是本次想和你分享的内容。


相关文章
|
8天前
|
机器学习/深度学习 人工智能 算法
青否数字人声音克隆算法升级,16个超真实直播声音模型免费送!
青否数字人的声音克隆算法全面升级,能够完美克隆真人的音调、语速、情感和呼吸。提供16种超真实的直播声音模型,支持3大AI直播类型和6大核心AIGC技术,60秒快速开播,助力商家轻松赚钱。AI讲品、互动和售卖功能强大,支持多平台直播,确保每场直播话术不重复,智能互动和真实感十足。新手小白也能轻松上手,有效规避违规风险。
|
5月前
|
人工智能 算法 安全
AI降噪耳机,可在嘈杂人群中单独通话,看一眼锁定目标
【6月更文挑战第15天】AI降噪耳机结合AI算法与麦克风阵列,能在嘈杂环境中确保清晰通话,提升沟通效率和隐私保护。尽管价格高、降噪效果有限且有安全隐患,它们为用户带来便利的同时,也引发了对隐私和安全的关注。
81 1
|
存储 数据采集 JavaScript
手把手教你做出数据可视化项目(四)动态模拟航班飞行路线
手把手教你做出数据可视化项目(四)动态模拟航班飞行路线
314 0
|
编解码 人工智能 算法
超越感官,沉浸赛场——大型体育赛事云上实战精选-第二章 NBA 总决赛:窄带高清的视觉渲染力-如临现场的视觉感染力,NBA决赛还能这样看?
超越感官,沉浸赛场——大型体育赛事云上实战精选-第二章 NBA 总决赛:窄带高清的视觉渲染力
203 0
|
编解码 算法 前端开发
【干货】淘宝人生里的虚拟人像渲染技术(含直播回放)
本文根据4月20日淘系技术前端团队出品的「阿里淘系用户体验优化前端实战系列直播」——《淘宝人生里的虚拟人像渲染技术》整理而成。
【干货】淘宝人生里的虚拟人像渲染技术(含直播回放)
|
大数据
从秒拍、小咖秀到一直播 视频矩阵背后的蝴蝶效应
从秒拍、小咖秀到一直播 视频矩阵背后的蝴蝶效应
从秒拍、小咖秀到一直播 视频矩阵背后的蝴蝶效应
|
编解码 人工智能 算法
于冰:用户导向的音视频体验优化
在LiveVideoStackCon2018音视频技术大会上,快手音视频技术负责人于冰分享了题为《用户导向的音视频体验优化》的主题演讲,从用户的角度来去谈音视频的体验优化。
643 0
于冰:用户导向的音视频体验优化
|
机器学习/深度学习 图形学 计算机视觉
一边动,一边画,自己就变二次元!华人小哥参与的黑科技:实时交互式视频风格化
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 动画,动画,就是你动你的,我画我的。 就像下面这张GIF,左边是张静态图片,随着画者一点一点为其勾勒色彩,右边的动图也在实时地变换颜色。
一边动,一边画,自己就变二次元!华人小哥参与的黑科技:实时交互式视频风格化
|
机器学习/深度学习 智能设计 人工智能