Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat:suport heart_rate in export gpx file #529

Merged

Conversation

zhaohongxuan
Copy link
Collaborator

@zhaohongxuan zhaohongxuan commented Oct 23, 2023

suport heart_rate in export gpx file in keep_sync, so we can backup heart rate data in local file or upload to other platform eg. Strava, Garmin

the heart rate data store in extensions field, follow the Garmin stardard : Garmin’s Track Point Extension v1, more detail info can be found in https://developers.strava.com/docs/uploads

the example exported GPX file shows below:

image

fix: #339

feat:suport heart_rate in export gpx file
@vercel
Copy link

vercel bot commented Oct 23, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
running-page ✅ Ready (Inspect) Visit Preview 💬 Add feedback Oct 29, 2023 6:49am

@yihong0618
Copy link
Owner

HA? we do not have heart rate info before?

@zhaohongxuan
Copy link
Collaborator Author

zhaohongxuan commented Oct 24, 2023

HA? we do not have heart rate info before?

Yes,there is no heart rate in export GPX file, the avg heart only exists
in running page web site,you can ref this issue: #339

@yihong0618
Copy link
Owner

yihong0618 commented Oct 24, 2023

have a quick its ok,did you follow the nike_sync.py to add hr to the gpx file?
image

then we can use the same logic to refactor it in the future

@zhaohongxuan
Copy link
Collaborator Author

have a quick its ok,did you follow the nike_sync.py to add hr to the gpx file? image

then we can use the same logic to refactor it in the future

I didn't realize that this feature had been implemented before, no wonder you raised the question above😂, I'll check how to refactor it.

Copy link
Collaborator

@ben-29 ben-29 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good job, don't forget to format the code using black, or the CI wrong pass

run_page/keep_sync.py Outdated Show resolved Hide resolved
run_page/keep_sync.py Outdated Show resolved Hide resolved
run_page/keep_sync.py Outdated Show resolved Hide resolved
run_page/keep_sync.py Outdated Show resolved Hide resolved
@zhaohongxuan
Copy link
Collaborator Author

@shaonianche could you help me test the nike_sync, since I can't login to my nike account...

run_page/keep_sync.py Outdated Show resolved Hide resolved
import polyline
import requests
from config import GPX_FOLDER, JSON_FILE, SQL_FILE, run_map, start_point
from Crypto.Cipher import AES
from generator import Generator
from utils import adjust_time
from utils import parse_df_points_to_gpx, Metadata
from pandas import DataFrame
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why we need pandas here...
I think it is a bit heavy (we only use this in csv generate...

run_page/keep_sync.py Show resolved Hide resolved
run_page/utils.py Outdated Show resolved Hide resolved
chore:revert gpx generate code
@yihong0618 yihong0618 merged commit 272c081 into yihong0618:master Oct 29, 2023
5 checks passed
ben-29 added a commit to ben-29/workouts_page that referenced this pull request Nov 26, 2023
* upstream:
  feat: `RunRow` toggle selection & cursor pointer (yihong0618#551)
  perf: use auto instead of scroll (yihong0618#550)
  doc: add nrc detail written by @angolap
  Update strava_to_garmin_sync.py (yihong0618#544)
  Master (yihong0618#545)
  fix: nrc sync
  fix: gh-pages build: drop the ref while trigger from Run Data Sync (yihong0618#540)
  upd deploy to github-pages  (yihong0618#537)
  feat: reduce grid svg file size (yihong0618#535)
  feat:suport heart_rate in export gpx file (yihong0618#529)
  feat: add NavigationControl (yihong0618#534)

# Conflicts:
#	README-CN.md
#	README.md
#	src/components/RunTable/RunRow.tsx
#	src/pages/index.tsx
J-Cod3r added a commit to J-Cod3r/running_page that referenced this pull request Mar 22, 2024
* doc: todo for 2.0

* fix: vercel and github page both work

* Update gh-pages.yml

* Update README.md

* Update index.jsx

* Update index.jsx

* Update index.jsx

* Update const.js

* Update index.jsx

* Update index.jsx

* Update index.jsx

* Update README-CN.md

my workouts page.

* Update README-CN.md

* Update README-CN.md

* feat: add tulipsport support

* docs: 添加GitHub Pages方案说明文档到README-CN.md中;添加部分代码注视,并修复一个查询区间的时间取值问题

* style: reformatted tulipsport_sync.py by black

* style: reformatted tulipsport_sync.py by black again(indent-size: 2 spaces => 4 spaces)

* fix: 修复被覆盖的start_time_local,设置为end_time_local

* doc: 合并GitHub Pages配置说明,调整郁金香配置文档结构

* feat: tulipsport_sync.py add --with-gpx option

* chore: tulipsport sync add --with-gpx in run_data_sync.yml file

* fix: add the compatible check when activity node lost

* fix: use dict.__contains__ instead of if else.

* style: reformat the code~

* share my Running page

* doc: new runners

* doc: new runner

* Update README.md

* Add Codoon to run_data_sync.yml

* doc: new runner

* fix typo

* chore: update README

* fix: RunTime using `moving_time` from activity instead of `distance * pace`, also fix sorting

* Add: stevenash0822 homepage & Update: calculation of avgPace

* fix: yihong0618#396 yihong0618#403

* f

* style:fix runtable mix-width

Signed-off-by: shaoanianche <[email protected]>

* refactor:cleanup code

* refactor:cleanup code

* refactor:fix dependency conflict warning

* refactor:fix dependency conflict warning

* refactor:fix dependency conflict warning

* refactor:fix dependency conflict warning

* refactor:fix dependency conflict warning

* refactor:fix dependency conflict warning

* refactor:fix dependency conflict warning

* refactor:fix dependency conflict warning

* commit: fix click area problem

* commit: add personal website

* commit: formatting

* fix: yihong0618#412

* fix: eval evil for joyrun and replace string by  install of

Signed-off-by: yihong0618 <[email protected]>

* fix: lint

* 🏃 share muyids's running page

* doc: new runner

* doc: new runner

* fix: yihong0618#426

* 申请加入

* 城市分割问题修改

* Update utils.js

format code

* 申请加入

* refactor: use event delegation to handle all <rect> & <polyline> in the "Total" view.

* fix: drop useless log

* feat:add garmin device in strava_to_garmin_sync script

feat:add device info toggle

format

update

optimized code

fake

docs:add usage desc for strava_to_garmin

* style:add default value for use_fake_garmin_device

* chore: use <></> instead of the root node of the components to improve rendering performance

* chore: remove unnecessary <div> tags to reduce dom node nesting

* feat(privacy): ignore start, end and choose points

Signed-off-by: EINDEX <[email protected]>

* docs: adding eindex workouts page

* fix: catch ValueError for non-number RANGES

Signed-off-by: EINDEX <[email protected]>

* fix(privacy): using strava way to hidding polyline

* style: black format

* refactor(privacy): for-loop to list-comprehension and typo fix

* Fix ci (yihong0618#444)

* fix: ci

* fix: strava same logic as garmin

* doc: info only run

* fix: yihong0618#443

* feat:support for download Garmin fit file (yihong0618#446)

* feat:support for download Garmin fit file

* Update README-CN.md (yihong0618#447)

* Update README-CN.md

* fix: url

* fix: ignore device info for origin fit file in strava_to_garmin_sync (yihong0618#448)

* fix: ignore fit file origin device

fix: ignore fit file origin device

* docs: remove redundant English desc

* chore: remove test code

* style: reformat code

* fix: polyline_str maybe None

* fit文件读取 (yihong0618#449)

* feat: parse fit file

* Update README.md (yihong0618#453)

* Update README.md (yihong0618#455)

* Fix Sports Type in codoon_sync.py (yihong0618#457)

Change "Run" to "Running" so when uploading the TCX files to Strava, it won't be recognized as "Ride".

* Update README-CN.md (yihong0618#459)

* Save synced filenams and skip sync next times (yihong0618#454)

* feat: add synced file name in imported.json, then skip those files next time

* chore: add TCX_OUT\FIT_OUT dir in `yarn data:clean` cli

* reformated

* fix: add try except when load json

* save data files to cache

* Revert "save data files to cache"

This reverts commit cd3bcf9.

* fix: new synced_data_file_logger.py

* reformatted

* save GPX/FIT/TCX, activities, accets, data.db to github cache

* Revert "save GPX/FIT/TCX, activities, accets, data.db to github cache"

This reverts commit 55f48cc.

* resolve the code review issues.

* fix: put all types data files record in one json

* add update track data file names in the synced record file

* fix: 457, add TCX_TYPE_DICT (yihong0618#462)

* fix: yihong0618#454, no `file_names` when sync from app (yihong0618#463)

* fix: yihong0618#454, no `file_names` when sync from app

* fix

* 添加保存过程中产生的数据文件到github action cache选项,顺便重新整理了一下github aciton workflow (yihong0618#464)

* 添加保存过程中产生的数据文件到github action cache选项,顺便重新整理了一下github aciton workflow

1. run_data_sync 调用 gh_page方式改成了workflow_call,这样可以传递一些数据过去。可以把设置都放在run_data_sync env中完成。在github后台看来也在一个job中完成了。
2. 缓存默认关闭,添加了文档。
3. 三个workflow中的action版本做了升级。有好几个github action提示版本过低了。
4. python和node准备环境部分做了优化。用了setup python /setup node自带的cache参数。多余的几个step删了。

* node-version: "16" -> node-version: '16'

* feat: add BUILD_GH_PAGES to control build gh pages

* docs: BUILD_GH_PAGES in run_data_sync.yml

* ci: fix typo

Signed-off-by: yihong0618 <[email protected]>

* readme中node版本修改 (yihong0618#466)

* Update README.md

和package.json同步。

* Update README-CN.md

与package.json同步

* Update README.md

修改成>=

* feat: Typescript! (yihong0618#461)

* feat: Typescript!

Signed-off-by: Frost Ming <[email protected]>

* chore: use node 16 as the base

Signed-off-by: Frost Ming <[email protected]>

* fix: remove use dependencies

Signed-off-by: Frost Ming <[email protected]>

---------

Signed-off-by: Frost Ming <[email protected]>

* fix: 同一天有多个运动时选中地图路线显示错误问题 (yihong0618#468)

* Add sync strava data args comment: `--only-run` (yihong0618#471)

* feat: change to SPA and vite (yihong0618#472)

feat: change to react and vite

Signed-off-by: Frost Ming <[email protected]>

* fix: set gh page default to true for newbie.......

* Add correction on instruction of build github pages. (yihong0618#476)

* feat: add a new runner's page (yihong0618#482)

* fix: using session to download keep route

* chore: merge example data

* doc: drop vercel cache build doc for newbie

* fix: fix fullscreen css (yihong0618#487)

* chore:upgrade node version and pnpm (yihong0618#474)


Signed-off-by: shaoanianche <[email protected]>

* doc: fix v2.0 doc and actions change (yihong0618#488)

* fix: gh-pages to Actions and fix the path bug (yihong0618#490)

* fix: v2.0 can not zoom (yihong0618#492)

* This commit do these things,
cause react update to 18 there is a serious bug for
react-map-gl, so we deside to update it to v7.
for v7 there's a lot of break change, we fix them as follows:
- bring mapbox css to the file.
- change the api that break
- add two packages in it to fit the change
- change viewport name to viewState to fit the api change

* fix: git ignore

* style:
* line blur to smooth
* mapStyle using dark-v10 to solve the language problem
* FullscreenButton style fix

---------

Co-authored-by: ben_29 <[email protected]>

* fix: gpx encode error maybe

* chore:gnore ./dist (yihong0618#494)

Signed-off-by: friendsa <[email protected]>

* fix: by comments

* doc: v2.0 doc

* chore: my data

* fix wrong path (yihong0618#498)

* yihong0618#484 导出keep接口升级无法获取gpx数据的跑步记录 (yihong0618#496)

* fix: keep interface upgraded, retrieved gpx data maybe failed

* fix: lint

* style: reformat code

---------

Co-authored-by: F4ria <[email protected]>

* fix Readme errors about `deploy to Cloudflare` (yihong0618#499)

* doc: chore, change typo

* fix: yihong0618#500

Signed-off-by: yihong0618 <[email protected]>

* feat: fix garmin down (yihong0618#505)

* fix: garth package

* fix: reverse bug

* fix: use garth package

* Update README.md for 2.0 github pages deployment (yihong0618#506)

* Update README.md for 2.0 github pages deployment

* Update README-CN.md

* doc: bring perssions in page back

* fix: garmin sync cn configure

* fix typo (yihong0618#510)

* Update README.md

* Update README-CN.md

* 更新新版本佳明同步文档 (yihong0618#507)

* update garmin sync readme

* Update run_data_sync.yml

* fix: drop pngs

---------

Co-authored-by: yihong0618 <[email protected]>

* feat: add IOS Shortcuts in README (yihong0618#513)

* fix: strava to garmin sync

* fix: yihong0618#516 (yihong0618#517)

* doc: new runner

* fix: upload to strava type

* fix: cityMatch (yihong0618#521)

(cherry picked from commit 7c3c05b)

* upd runner's page url (yihong0618#522)

* doc: new runner

* updatereadme (yihong0618#527)

* fix: yihong0618#484 keep gps data decode (yihong0618#524)

* fix: yihong0618#484 keep gps data decode

---------

Co-authored-by: yihong0618 <[email protected]>

* fix: bring old logic back

* fix: drop useless png

* docs:rewrite docs (yihong0618#514)

docs:rewrite docs

Signed-off-by: shaoanianche <[email protected]>

* doc: runner info fix

* fix: show in firefox

Signed-off-by: yihong0618 <[email protected]>

* feat: add NavigationControl (yihong0618#534)

* feat:suport heart_rate in export gpx file (yihong0618#529)

* feat:suport heart_rate in export gpx file

* feat: reduce grid svg file size (yihong0618#535)

* upd deploy to github-pages  (yihong0618#537)

* 更新部署 github-pages 说明

* Update Deploy to Github-pages

---------

Co-authored-by: haowei.chen <[email protected]>

* fix: gh-pages build: drop the ref while trigger from Run Data Sync (yihong0618#540)

* fix: gh-pages build: drop the ref while trigger from Run Data Sync

* fix: nrc sync

Signed-off-by: yihong0618 <[email protected]>

* Master (yihong0618#545)

* Update run_data_sync.yml

* Update run_data_sync.yml

* Update run_data_sync.yml

* add screenshot to show how to get nike refresh token

* add screenshot to show how to get nike refresh token

* refactor

* Update strava_to_garmin_sync.py (yihong0618#544)

Sort the activities downloaded from Strava by their id's thus they are uploaded to Garmin from the oldest to the latest. Otherwise, the latest one is uploaded first, and if the process is interrupted, any activities older than it will never be uploaded because the code before this line gets the latest activity from Garmin and only download those newer than it from Strava.

* doc: add nrc detail written by @angolap

* perf: use auto instead of scroll (yihong0618#550)

Co-authored-by: caojiawen <[email protected]>

* feat: `RunRow` toggle selection & cursor pointer (yihong0618#551)

* perf: split `activities.json` from index (yihong0618#552)

* fix a bug in track.py. (yihong0618#559)

* fix: yihong0618#566

* fix: update the year when change by Title & City, otherwise the `SVG` will be displayed and the table will not be shown if the previous status is 'Total' (yihong0618#567)

* fix: dockerfile typo thanks @dywu516

Signed-off-by: yihong0618 <[email protected]>

* fix: Codoon tcx output use start_time as ID instead of Codoon id (yihong0618#568)

* fix: Codoon tcv output use start_time as ID instead of Codoon id

* fix lint by black

---------

Co-authored-by: anchao <[email protected]>

* docs: add runner (yihong0618#571)

* feat: ✨ Support ga, default off (yihong0618#572)

* docs: add runner page (yihong0618#577)

add runner page

* 添加 (yihong0618#578)

Co-authored-by: ppz <[email protected]>

* Update index.tsx (yihong0618#579)

bugfix: BPM Sort Function

* Reduce svg size & lzay load github.svg and grid.svg (yihong0618#580)

* feat: sync garmin cn to garmin global

* github workflow

* nits

* nits

* fix fit download gpx file (yihong0618#582)

* garmin-cn sync garmin-global tutorial in readme and readme-cn

* fix: lock lxml version

Signed-off-by: yihong0618 <[email protected]>

* Refactor: sync garmin cn to global

Step 1: Sync all activities from Garmin CN to Garmin Global in FIT format.
If the activity is manually imported with a GPX, the GPX file will be synced.
Step 2: Generate track from gpx file.

* nits

* remove fake device

* fix: yihong0618#584 change fit-tool to garmin-fit-sdk (yihong0618#590)

* fix: 584 change fit-tool to garmin-fit-sdk

* feat: garmin - handle gpx(if exist) when sync with fit

* fix import error

* doc: SEMICIRCLE

* fix: wrap_device_info using fit-tool

---------

Co-authored-by: NaturezzZ <[email protected]>

* step 2, generate running page from .fit and .gpx

* nits

* fix readme

* Feat: lights switch (yihong0618#591)

* feat: Lights on and off

* style: Show boundary and line together, combine geoData(only when not combine yet)

* style: disable dash and transparent, stronger line when lights off

* style: Button alignment

* style: Fullscreen Button alignment

* feat: LIGHTS_ON config

* feat: PRIVACY_MODE config

* feat: PRIVACY_MODE config

* doc: note for PRIVACY_MODE (yihong0618#594)

* chore: my data

Signed-off-by: yihong0618 <[email protected]>

* fix: resolve issue yihong0618#597 (yihong0618#599)

* set country name to chinese

* nits

* nits

* fix: svg not found causes page crash (yihong0618#598)

* Joyrun gpx export fix for pauses and gpx segments (yihong0618#601)

support pause, add segments to gpx

* fix: text position change when map zoom in and zoom out (yihong0618#604)

* set default file_suffix = gpx (yihong0618#609)

* set default file_suffix = gpx

* fix: lint

Signed-off-by: yihong0618 <[email protected]>

---------

Signed-off-by: yihong0618 <[email protected]>
Co-authored-by: yihong0618 <[email protected]>

* add yer1k's running page (yihong0618#608)

* Update ci.yml (yihong0618#610)

Upgrade checkout to v4 from v3 and setup-python from v4 to v5

* Update GitHub Actions and README (yihong0618#611)

* Update GitHub Pages+Custom domain instruction in README.md

* update gh-pages.yml

* update actions version in run_data_sync.yml

* Added zh instrustion for custom domain with github.io and yer1k's running page link

* fix: strava version

Signed-off-by: yihong0618 <[email protected]>

* fix: stravaweblib version

Signed-off-by: yihong0618 <[email protected]>

* fix: ts type error (yihong0618#622)

Signed-off-by: yihong0618 <[email protected]>

* Fix README typo (yihong0618#624)

* feat: coros sync (yihong0618#623)

* feat: coros sync

---------

Co-authored-by: Dingkun Yang <[email protected]>

* add run.drink.cafe (yihong0618#628)

* Update README.md

* Update README-CN.md

---------

Signed-off-by: shaoanianche <[email protected]>
Signed-off-by: yihong0618 <[email protected]>
Signed-off-by: EINDEX <[email protected]>
Signed-off-by: Frost Ming <[email protected]>
Signed-off-by: friendsa <[email protected]>
Co-authored-by: yihong0618 <[email protected]>
Co-authored-by: lingdeyiyicifang <[email protected]>
Co-authored-by: frhfeng <[email protected]>
Co-authored-by: rdshoep <[email protected]>
Co-authored-by: Bob <[email protected]>
Co-authored-by: nxg <[email protected]>
Co-authored-by: Ziyuan Han <[email protected]>
Co-authored-by: tiny656 <[email protected]>
Co-authored-by: DuckTyping <[email protected]>
Co-authored-by: ben_29 <[email protected]>
Co-authored-by: jojo <[email protected]>
Co-authored-by: shaoanianche <[email protected]>
Co-authored-by: linwentao <[email protected]>
Co-authored-by: wonderfulest <[email protected]>
Co-authored-by: Ray Wang <[email protected]>
Co-authored-by: 2tu <[email protected]>
Co-authored-by: linjianfeng <[email protected]>
Co-authored-by: zhaohongxuan <[email protected]>
Co-authored-by: EINDEX <[email protected]>
Co-authored-by: EINDEX <[email protected]>
Co-authored-by: zhangyulai <[email protected]>
Co-authored-by: Agassi <[email protected]>
Co-authored-by: Stefrex <[email protected]>
Co-authored-by: deepinwine <[email protected]>
Co-authored-by: Chongnuo Ji <[email protected]>
Co-authored-by: ttkltll <[email protected]>
Co-authored-by: Frost Ming <[email protected]>
Co-authored-by: jqz3.tech <[email protected]>
Co-authored-by: Hao Dong <[email protected]>
Co-authored-by: F4ria <[email protected]>
Co-authored-by: F4ria <[email protected]>
Co-authored-by: Licardo <[email protected]>
Co-authored-by: Qingyang Li <[email protected]>
Co-authored-by: NaturezzZ <[email protected]>
Co-authored-by: LeslieeHwang <[email protected]>
Co-authored-by: Zetao Feng <[email protected]>
Co-authored-by: haowei93 <[email protected]>
Co-authored-by: sober <[email protected]>
Co-authored-by: haowei.chen <[email protected]>
Co-authored-by: Zion <[email protected]>
Co-authored-by: Li Peng <[email protected]>
Co-authored-by: orionna319 <[email protected]>
Co-authored-by: caojiawen <[email protected]>
Co-authored-by: conanyangqun <[email protected]>
Co-authored-by: Chao An <[email protected]>
Co-authored-by: anchao <[email protected]>
Co-authored-by: iiiRyan <[email protected]>
Co-authored-by: 8824PPZ <[email protected]>
Co-authored-by: ppz <[email protected]>
Co-authored-by: ElvisZhu <[email protected]>
Co-authored-by: NaturezzZ <[email protected]>
Co-authored-by: Fahrayheit <[email protected]>
Co-authored-by: Sayid He <[email protected]>
Co-authored-by: beer <[email protected]>
Co-authored-by: Dingkun Yang <[email protected]>
Co-authored-by: tianheg <[email protected]>
Co-authored-by: Garden Yuen <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

GPX不包含心率跟步频
3 participants