回看自己过去 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 多分钟几倍的时间才勉强弄出来,中间还向项目的原作者问了好几个问题,在此要感谢作者的耐心解答❤️。

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

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


相关文章
|
6月前
|
人工智能 算法 安全
AI降噪耳机,可在嘈杂人群中单独通话,看一眼锁定目标
【6月更文挑战第15天】AI降噪耳机结合AI算法与麦克风阵列,能在嘈杂环境中确保清晰通话,提升沟通效率和隐私保护。尽管价格高、降噪效果有限且有安全隐患,它们为用户带来便利的同时,也引发了对隐私和安全的关注。
90 1
|
6月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之对于双胞胎有没有什么好的处理办法
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
自然语言处理 数据挖掘 程序员
实现虚拟人直播带货具体实现需要哪些步骤
实现虚拟人直播带货具体实现需要哪些步骤
189 1
|
程序员 图形学
虚拟人直播带货如何实现
虚拟人直播带货如何实现
148 1
|
语音技术 UED
语音房源码搭建技术分享之降噪功能详解
我今天要分享的知识就与噪音有关,在语音房源码平台中,噪音的存在对其也会有极大的影响,影响语音房源码平台的噪音来源也有很多,像是外界环境的噪杂等,所以在语音房源码中,降噪功能的出现缓解了噪音对语音房源码平台的影响
语音房源码搭建技术分享之降噪功能详解
|
机器学习/深度学习 算法
【OpenVI—视觉生产系列之视频插帧实战篇】几行代码,尽享流畅丝滑的视频观感
随着网络电视、手机等新媒体领域的快速发展,用户对于观看视频质量的要求也越来越高。当前市面上所广为传播的视频帧率大多仍然处于20~30fps,已经无法满足用户对于高清、流畅的体验追求。而视频插帧算法,能够有效实现多倍率的帧率提升,有效消除低帧率视频的卡顿感,让视频变得丝滑流畅。配合其它的视频增强算法,更是能够让低质量视频焕然一新,让观众享受到极致的播放和观看体验。
637 0
【OpenVI—视觉生产系列之视频插帧实战篇】几行代码,尽享流畅丝滑的视频观感
|
传感器 机器学习/深度学习 搜索推荐
|
编解码 算法 前端开发
【干货】淘宝人生里的虚拟人像渲染技术(含直播回放)
本文根据4月20日淘系技术前端团队出品的「阿里淘系用户体验优化前端实战系列直播」——《淘宝人生里的虚拟人像渲染技术》整理而成。
【干货】淘宝人生里的虚拟人像渲染技术(含直播回放)
|
人工智能 Cloud Native 物联网
不可错过!2020最热的100场技术直播来了
2020年最热门的100场技术直播我们都替你找出来了!
不可错过!2020最热的100场技术直播来了