diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml
index a799bdb4893..6850b560885 100644
--- a/.github/workflows/gh-pages.yml
+++ b/.github/workflows/gh-pages.yml
@@ -59,7 +59,7 @@ jobs:
TCX_OUT
FIT_OUT
Workouts
- scripts/data.db
+ run_page/data.db
src/static/activities.json
imported.json
key: ${{ inputs.data_cache_prefix }}-${{ github.sha }}-${{ github.run_id }}
diff --git a/.github/workflows/run_data_sync.yml b/.github/workflows/run_data_sync.yml
index 19c04c47cd4..fdf756ce14b 100644
--- a/.github/workflows/run_data_sync.yml
+++ b/.github/workflows/run_data_sync.yml
@@ -74,7 +74,7 @@ jobs:
TCX_OUT
FIT_OUT
Workouts
- scripts/data.db
+ run_page/data.db
src/static/activities.json
imported.json
key: ${{ env.DATA_CACHE_PREFIX }}-${{ github.sha }}-${{ github.run_id }}
@@ -100,9 +100,9 @@ jobs:
- name: Run sync Strava script
if: env.RUN_TYPE == 'strava'
run: |
- python scripts/strava_sync.py ${{ secrets.STRAVA_CLIENT_ID }} ${{ secrets.STRAVA_CLIENT_SECRET }} ${{ secrets.STRAVA_CLIENT_REFRESH_TOKEN }}
+ python run_page/strava_sync.py ${{ secrets.STRAVA_CLIENT_ID }} ${{ secrets.STRAVA_CLIENT_SECRET }} ${{ secrets.STRAVA_CLIENT_REFRESH_TOKEN }}
# If you only want to sync `type running` add args --only-run, default script is to sync all data (rides and runs).
- # python scripts/garmin_sync.py ${{ secrets.GARMIN_EMAIL }} ${{ secrets.GARMIN_PASSWORD }} --only-run --is-cn
+ # python run_page/garmin_sync.py ${{ secrets.GARMIN_EMAIL }} ${{ secrets.GARMIN_PASSWORD }} --only-run --is-cn
- name: Run sync Codoon script
if: env.RUN_TYPE == 'codoon'
@@ -132,12 +132,12 @@ jobs:
- name: Run sync Only FIT script
if: env.RUN_TYPE == 'only_fit'
run: |
- python scripts/fit_sync.py
+ python run_page/fit_sync.py
- name: Run sync Only TCX script
if: env.RUN_TYPE == 'only_tcx'
run: |
- python scripts/tcx_sync.py
+ python run_page/tcx_sync.py
- name: Run sync Strava to Garmin(Run with strava(or others upload to strava) data backup in Garmin)
if: env.RUN_TYPE == 'strava_to_garmin'
diff --git a/README-CN.md b/README-CN.md
index f519f0ceca3..2b46cdc9224 100644
--- a/README-CN.md
+++ b/README-CN.md
@@ -787,17 +787,19 @@ python3(python) run_page/gen_svg.py --from-db --type circular --use-localtime
使用 Cloudflare 部署
-1. 在 `Pages` 中点击 `Create a project` 以连接到你的仓库
+1. 登录到 [Cloudflare 仪表板](https://dash.cloudflare.com)。
-2. 点击 `Begin setup` 后,修改项目的 `Build settings`。
+2. 在左侧选择 `Workers 和 Pages`。
-3. 在 `Framework preset` 中选择 `Create React App` 框架。
+3. 点击 `创建应用程序` 后选择 `Pages` 页面,链接您的 GitHub 账户并选择 `running_page` 仓库,点击 `开始设置`。
-4. 向下滚动,点击 `Environment variables` 修改变量如下:
+4. 下滑到 `构建设置`,在 `框架预设` 中选择 `Create React App`,将 `构建输出目录` 设置为 `dist`。
- > Variable name = `PYTHON_VERSION`, Value = `3.7`
+5. 下滑点击 `环境变量 (高级)`,并添加一个如下的变量:
-5. 点击 `Save and Deploy`,完成部署。
+ > 变量名称 = `PYTHON_VERSION`, 值 = `3.7`
+
+6. 点击 `保存并部署`,完成部署。
diff --git a/README.md b/README.md
index 5a5326f5fbb..35330b53082 100644
--- a/README.md
+++ b/README.md
@@ -617,15 +617,19 @@ For more display effects, see:
Use Cloudflare
to deploy
-1. Click `Create a project` in `Pages` to connect to your Repo.
+1. Login to [Cloudflare dashboard](https://dash.cloudflare.com).
-2. After clicking `Begin setup`, modify Project's `Build settings`.
+2. Click `Workers & Pages` on the left side.
-3. Select `Framework preset` to `Create React App`
+3. Click `Create application` and select `Pages` tab, connect your GitHub account and select `running_page` Repo, then click `Begin setup`.
-4. Scroll down, click `Environment variables`, then variable below:
+4. Scroll down to `Build settings`, choose `Create React App` from `Framework preset`, and set `Build output directory` to `dist`.
-5. Click `Save and Deploy`
+5. Scroll down, click `Environment variables (advanced)`, then add a variable like below:
+
+ > Variable name = `PYTHON_VERSION`, Value = `3.7`
+
+6. Click `Save and Deploy`
diff --git a/run_page/keep_sync.py b/run_page/keep_sync.py
index 617e26b478c..c632d0ae42c 100755
--- a/run_page/keep_sync.py
+++ b/run_page/keep_sync.py
@@ -85,23 +85,28 @@ def parse_raw_data_to_nametuple(
):
raw_data_url = run_data.get("rawDataURL")
r = session.get(raw_data_url)
- # string strart with `H4sIAAAAAAAA` --> decode and unzip
- run_points_data = decode_runmap_data(r.text)
- run_points_data_gpx = run_points_data
- if TRANS_GCJ02_TO_WGS84:
- run_points_data = [
- list(eviltransform.gcj2wgs(p["latitude"], p["longitude"]))
- for p in run_points_data
- ]
- for i, p in enumerate(run_points_data_gpx):
- p["latitude"] = run_points_data[i][0]
- p["longitude"] = run_points_data[i][1]
+ if r.ok:
+ # string strart with `H4sIAAAAAAAA` --> decode and unzip
+ run_points_data = decode_runmap_data(r.text)
+ run_points_data_gpx = run_points_data
+ if TRANS_GCJ02_TO_WGS84:
+ run_points_data = [
+ list(eviltransform.gcj2wgs(p["latitude"], p["longitude"]))
+ for p in run_points_data
+ ]
+ for i, p in enumerate(run_points_data_gpx):
+ p["latitude"] = run_points_data[i][0]
+ p["longitude"] = run_points_data[i][1]
+ else:
+ run_points_data = [
+ [p["latitude"], p["longitude"]] for p in run_points_data
+ ]
+ if with_download_gpx:
+ if str(keep_id) not in old_gpx_ids:
+ gpx_data = parse_points_to_gpx(run_points_data_gpx, start_time)
+ download_keep_gpx(gpx_data, str(keep_id))
else:
- run_points_data = [[p["latitude"], p["longitude"]] for p in run_points_data]
- if with_download_gpx:
- if str(keep_id) not in old_gpx_ids:
- gpx_data = parse_points_to_gpx(run_points_data_gpx, start_time)
- download_keep_gpx(gpx_data, str(keep_id))
+ print(f"ID {keep_id} retrieved gpx data failed")
heart_rate = None
if run_data["heartRate"]:
heart_rate = run_data["heartRate"].get("averageHeartRate", None)