回看自己过去 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月前
AIGC生产游戏宝宝图片
有一个叫做"龙族"的种族。这个种族拥有着强大的力量和独特的技能,其中最引人注目的就是龙族的龙宝宝。
153 0
|
12月前
|
编解码 人工智能 算法
超越感官,沉浸赛场——大型体育赛事云上实战精选-第二章 NBA 总决赛:窄带高清的视觉渲染力-如临现场的视觉感染力,NBA决赛还能这样看?
超越感官,沉浸赛场——大型体育赛事云上实战精选-第二章 NBA 总决赛:窄带高清的视觉渲染力
159 0
|
12月前
|
编解码 算法
超越感官,沉浸赛场——大型体育赛事云上实战精选-第二章 NBA 总决赛:窄带高清的视觉渲染力 NBA赛事超清画质的背后:「窄带高清2.0」技术深度解读(下)
超越感官,沉浸赛场——大型体育赛事云上实战精选-第二章 NBA 总决赛:窄带高清的视觉渲染力 NBA赛事超清画质的背后:「窄带高清2.0」技术深度解读
164 0
|
12月前
|
机器学习/深度学习 编解码 人工智能
超越感官,沉浸赛场——大型体育赛事云上实战精选-第二章 NBA 总决赛:窄带高清的视觉渲染力 NBA赛事超清画质的背后:「窄带高清2.0」技术深度解读(中)
超越感官,沉浸赛场——大型体育赛事云上实战精选-第二章 NBA 总决赛:窄带高清的视觉渲染力 NBA赛事超清画质的背后:「窄带高清2.0」技术深度解读
206 0
|
语音技术 vr&ar UED
推、拉、拖、拽……Rokid多模态交互如何让虚实共舞?
推、拉、拖、拽……Rokid多模态交互如何让虚实共舞?
119 0
推、拉、拖、拽……Rokid多模态交互如何让虚实共舞?
|
传感器 机器学习/深度学习 搜索推荐
|
传感器 前端开发 vr&ar
三种前端实现VR全景看房的方案!说不定哪天就用得上!(上)
事情是这样的,前几天我接到一个外包工头的新需求,某品牌要搭建一个在线VR展厅,用户可以在手机上通过陀螺仪或者拖动来360度全景参观展厅,这个VR展厅里会有一些信息点,点击之后可以呈现更多信息(视频,图文等)... 我第一反应是用3D引擎,因为我不久前刚用three.js做过一个BMW的在线展厅,基本把three.js摸熟了。
463 0
三种前端实现VR全景看房的方案!说不定哪天就用得上!(上)
|
传感器 移动开发 数据可视化
三种前端实现VR全景看房的方案!说不定哪天就用得上! (下)
事情是这样的,前几天我接到一个外包工头的新需求,某品牌要搭建一个在线VR展厅,用户可以在手机上通过陀螺仪或者拖动来360度全景参观展厅,这个VR展厅里会有一些信息点,点击之后可以呈现更多信息(视频,图文等)... 我第一反应是用3D引擎,因为我不久前刚用three.js做过一个BMW的在线展厅,基本把three.js摸熟了。
968 0
三种前端实现VR全景看房的方案!说不定哪天就用得上! (下)
|
机器学习/深度学习 编解码 缓存
《这!就是街舞》自由视角沉浸式体验黑科技揭秘
《这!就是街舞》第四季大家看了吗?不知道有没有小伙伴跟笔者一样,“DNA”都要跟着舞动了起来。除了炸裂的舞台,堪比跨次元的真实观影体验,让用户在自由视角视频体验效果下身临其境:
398 0
《这!就是街舞》自由视角沉浸式体验黑科技揭秘