From 6890892654b99fbcee785d219aa92092b9b3a499 Mon Sep 17 00:00:00 2001 From: Davide Scaini Date: Wed, 15 Apr 2026 09:30:22 +0200 Subject: [PATCH] trying to fix building of activities that fails because of OOM --- bincio/serve/server.py | 5 ++--- docs/architecture.mmd | 20 ++++++++++---------- scripts/pull_feedback.sh | 22 ++++++++++++++++++++++ 3 files changed, 34 insertions(+), 13 deletions(-) create mode 100755 scripts/pull_feedback.sh diff --git a/bincio/serve/server.py b/bincio/serve/server.py index 4310f00..bd6420f 100644 --- a/bincio/serve/server.py +++ b/bincio/serve/server.py @@ -654,7 +654,7 @@ async def admin_reextract_originals( from bincio.extract.metrics import compute as compute_metrics from bincio.extract.writer import ( build_summary, make_activity_id, write_activity, - write_index, write_athlete_json, + write_index, ) from bincio.render.merge import merge_all except Exception as exc: @@ -714,10 +714,9 @@ async def admin_reextract_originals( if imported > 0: loop.call_soon_threadsafe(q.put_nowait, - f"data: {json.dumps({'type': 'status', 'message': 'Writing index and athlete data…'})}\n\n") + f"data: {json.dumps({'type': 'status', 'message': 'Writing index…'})}\n\n") try: write_index(list(summaries.values()), user_dir, owner) - write_athlete_json(list(summaries.values()), user_dir, athlete_config) loop.call_soon_threadsafe(q.put_nowait, f"data: {json.dumps({'type': 'status', 'message': 'Running merge and rebuild…'})}\n\n") merge_all(user_dir) diff --git a/docs/architecture.mmd b/docs/architecture.mmd index 83a64be..4abca73 100644 --- a/docs/architecture.mmd +++ b/docs/architecture.mmd @@ -234,13 +234,13 @@ graph LR site_src_pages_about_it_index_astro --> site_src_layouts_Base_astro site_src_pages_about_ca_index_astro --> site_src_layouts_Base_astro site_src_pages_about_es_index_astro --> site_src_layouts_Base_astro - bincio_cli_py --> bincio_import__cli_py - bincio_cli_py --> bincio_extract_cli_py - bincio_cli_py --> bincio_dev_py bincio_cli_py --> bincio_edit_cli_py - bincio_cli_py --> bincio_serve_cli_py + bincio_cli_py --> bincio_extract_cli_py bincio_cli_py --> bincio_render_cli_py + bincio_cli_py --> bincio_serve_cli_py + bincio_cli_py --> bincio_import__cli_py bincio_cli_py --> bincio_serve_init_cmd_py + bincio_cli_py --> bincio_dev_py bincio_import__strava_py --> bincio_extract_models_py bincio_import__strava_py --> bincio_extract_sport_py bincio_edit_server_py --> bincio_edit_ops_py @@ -252,23 +252,23 @@ graph LR bincio_extract_cli_py --> bincio_extract_parsers_factory_py bincio_extract_cli_py --> bincio_extract_config_py bincio_extract_cli_py --> bincio_extract_dedup_py - bincio_extract_writer_py --> bincio_extract_models_py bincio_extract_writer_py --> bincio_extract_metrics_py - bincio_extract_writer_py --> bincio_extract_timeseries_py bincio_extract_writer_py --> bincio_extract_simplify_py + bincio_extract_writer_py --> bincio_extract_timeseries_py + bincio_extract_writer_py --> bincio_extract_models_py bincio_extract_timeseries_py --> bincio_extract_models_py - bincio_serve_server_py --> bincio_edit_ops_py bincio_serve_server_py --> bincio_serve_db_py + bincio_serve_server_py --> bincio_edit_ops_py bincio_extract_parsers_tcx_py --> bincio_extract_models_py bincio_extract_parsers_tcx_py --> bincio_extract_sport_py bincio_extract_parsers_fit_py --> bincio_extract_models_py bincio_extract_parsers_fit_py --> bincio_extract_sport_py + bincio_extract_parsers_gpx_py --> bincio_extract_sport_py bincio_extract_parsers_gpx_py --> bincio_extract_models_py bincio_extract_parsers_gpx_py --> bincio_extract_parsers_base_py - bincio_extract_parsers_gpx_py --> bincio_extract_sport_py - bincio_extract_parsers_factory_py --> bincio_extract_models_py bincio_extract_parsers_factory_py --> bincio_extract_parsers_gpx_py + bincio_extract_parsers_factory_py --> bincio_extract_models_py + bincio_extract_parsers_factory_py --> bincio_extract_parsers_tcx_py bincio_extract_parsers_factory_py --> bincio_extract_parsers_base_py bincio_extract_parsers_factory_py --> bincio_extract_parsers_fit_py - bincio_extract_parsers_factory_py --> bincio_extract_parsers_tcx_py bincio_extract_parsers_base_py --> bincio_extract_models_py \ No newline at end of file diff --git a/scripts/pull_feedback.sh b/scripts/pull_feedback.sh new file mode 100755 index 0000000..c0866fb --- /dev/null +++ b/scripts/pull_feedback.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +# Pull user feedback from the VPS into ./feedback/ locally. +# Usage: bash scripts/pull_feedback.sh [vps-host] (default: root@95.216.55.151) + +set -e +VPS=${1:-root@95.216.55.151} +REMOTE=/var/bincio/data/_feedback +LOCAL=$(dirname "$0")/../feedback + +mkdir -p "$LOCAL" + +echo "Syncing feedback from $VPS:$REMOTE → $LOCAL" +rsync -avz --progress "${VPS}:${REMOTE}/" "$LOCAL/" + +echo "" +echo "=== Feedback summary ===" +for f in "$LOCAL"/*.json; do + [[ -f "$f" ]] || continue + handle=$(basename "$f" .json) + count=$(python3 -c "import json,sys; d=json.load(open('$f')); print(len(d) if isinstance(d, list) else 1)" 2>/dev/null || echo "?") + echo " @$handle: $count submission(s)" +done