yihong0618 / running_page
- суббота, 31 октября 2020 г. в 00:23:57
JavaScript
Make your own running page
简体中文 | English
Runner | page | App |
---|---|---|
shaonianche | https://run.duangfei.org | Nike |
yihong0618 | https://yihong.run/running | Nike |
superleeyom | https://running.leeyom.top | Keep |
geekplux | https://activities.geekplux.com | Nike |
guanlan | https://grun.vercel.app/ | Strava |
tuzimoe | https://run.tuzi.moe/ | Nike |
ben-29 | https://running.ben29.xyz/ | Strava |
git clone https://github.com/yihong0618/running_page.git
pip3 install -r requirements.txt
yarn install
yarn develop
访问 http://localhost:8000/ 查看
删除项目中的测试数据,在根目录下执行
rm scripts/data.db GPX_OUT/* activities/*
或者
rm scripts/data.db
rm GPX_OUT/*
rm activities/*
确保自己的账号能用手机号 + 密码登陆 (不要忘记添加secret和更改自己的账号,在 GitHub Actions中)
python3(python) scripts/keep_sync.py ${your mobile} ${your password}
示例:
python3(python) scripts/keep_sync.py 13333xxxx example
注:我增加了 keep 可以导出 gpx 功能(因 keep 的原因,距离和速度会有一定缺失), 执行如下命令,导出的 gpx会加入到 GPX_OUT 中,方便上传到其它软件
python3(python) scripts/keep_sync.py ${your mobile} ${your password} --with-gpx
示例:
python3(python) scripts/keep_sync.py 13333xxxx example --with-gpx
python3(python) scripts/garmin_sync.py ${your email} ${your password}
示例:
python3(python) scripts/garmin_sync.py example@gmail.com example
python3(python) scripts/garmin_sync.py ${your email} ${your password} --is-cn
示例:
python3(python) scripts/garmin_sync.py example@gmail.com example --is-cn
python3(python) scripts/runtastic_sync.py ${your email} ${your password}
示例:
python3(python) scripts/runtastic_sync.py example@gmail.com example
获取 Nike 的 refresh_token
python3(python) scripts/nike_sync.py ${nike refresh_token}
示例:
python3(python) scripts/nike_sync.py eyJhbGciThiMTItNGIw******
注册/登陆 Strava 账号
登陆成功后打开 Strava Developers -> Create & Manage Your App
使用以下链接请求所有权限
将 ${your_id} 替换为 My API Application 中的 Client ID 后访问完整链接
https://www.strava.com/oauth/authorize?client_id=${your_id}&response_type=code&redirect_uri=http://localhost/exchange_token&approval_prompt=force&scope=read_all,profile:read_all,activity:read_all,profile:write,activity:write
http://localhost/exchange_token?state=&code=1dab37edd9970971fb502c9efdd087f4f3471e6e&scope=read,activity:write,activity:read_all,profile:write,profile:read_all,read_all
code
数值为:
1dab37edd9970971fb502c9efdd087f4f3471e6
6. 使用 Client_id、Client_secret、Code 请求 refresch_token
在 终端/iTerm
中执行:
curl -X POST https://www.strava.com/oauth/token \
-F client_id=${Your Client ID} \
-F client_secret=${Your Client Secret} \
-F code=${Your Code} \
-F grant_type=authorization_code
示例:
curl -X POST https://www.strava.com/oauth/token \
-F client_id=12345 \
-F client_secret=b21******d0bfb377998ed1ac3b0 \
-F code=d09******b58abface48003 \
-F grant_type=authorization_code
python3(python) scripts/strava_sync.py ${client_id} ${client_secret} ${refresch_token}
其他资料参见
https://developers.strava.com/docs/getting-started
https://github.com/barrald/strava-uploader
https://github.com/strava/go.strava
注: 感兴趣的同学可以改下方参数 (--special-distance 10 --special-distance2 20, 10km~20km展示为 special-color1 20km 以上展示为special-color2, --min-distance 10.0用来筛选 10km 以上的)
python3(python) scripts/gen_svg.py --from-db --title "${{ env.TITLE }}" --type github --athlete "${{ env.ATHLETE }}" --special-distance 10 --special-distance2 20 --special-color yellow --special-color2 red --output assets/github.svg --use-localtime --min-distance 0.5
python3(python) scripts/gen_svg.py --from-db --title "${{ env.TITLE_GRID }}" --type grid --athlete "${{ env.ATHLETE }}" --output assets/grid.svg --min-distance 10.0 --special-color yellow --special-color2 red --special-distance 20 --special-distance2 40 --use-localtime
更多展示效果参见:
https://github.com/flopp/GpxTrackPoster
Actions 源码 需要做如下步骤
提交PR前: