From c2a1f6c1ddd38136b084e80d606db1e319809ec7 Mon Sep 17 00:00:00 2001 From: Yajat Sharma Date: Sun, 4 Oct 2026 14:33:47 +0530 Subject: [PATCH] Add example screenshot to import modal and auto-fill relative run dates - Screenshot import tab gets an info button that shows an example Strava screenshot and a checklist of what the AI needs to see. - "Today", "Yesterday" and weekday labels on screenshots now resolve to real dates using the browser's local date (sent as client_date); runs with no visible date default to today. - Confirm import allows +1 day so a user ahead of the server's timezone isn't rejected for a "future" date. Co-Authored-By: Claude Opus 5.5 --- app.py | 56 ++++++++++++++++- static/img/example-run-screenshot.webp | Bin 0 -> 92518 bytes templates/index.html | 81 +++++++++++++++++++++++++ tests/test_screenshot_import.py | 58 ++++++++++++++++++ 4 files changed, 192 insertions(+), 3 deletions(-) create mode 100644 static/img/example-run-screenshot.webp diff --git a/app.py b/app.py index 66cece5..198cf83 100644 --- a/app.py +++ b/app.py @@ -3392,6 +3392,49 @@ def confirm_import(): # ---------- SCREENSHOT IMPORT ---------- +_WEEKDAYS = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"] + + +def _screenshot_reference_date(client_date_str): + """ + The user's local "today", sent by the browser. Falls back to the server's date + when missing/invalid or more than a day away from it (timezones differ by < 1 day). + """ + server_today = date.today() + try: + client_today = datetime.strptime(str(client_date_str or "").strip(), "%Y-%m-%d").date() + except ValueError: + return server_today + if abs((client_today - server_today).days) > 1: + return server_today + return client_today + + +def _resolve_screenshot_date(raw_date, relative, today): + """ + Turn what the model read off the screenshot into a YYYY-MM-DD string. + Relative labels ("Today", "Yesterday", "Monday") are resolved against `today`; + an absolute date is kept if valid and not in the future; otherwise default to today. + """ + rel = str(relative or "").strip().lower() + if rel == "today": + return today.isoformat() + if rel == "yesterday": + return (today - timedelta(days=1)).isoformat() + if rel in _WEEKDAYS: + # Apps show a weekday name for runs earlier in the past week, never for today + days_back = (today.weekday() - _WEEKDAYS.index(rel)) % 7 or 7 + return (today - timedelta(days=days_back)).isoformat() + + try: + parsed = datetime.strptime(str(raw_date or "").strip(), "%Y-%m-%d").date() + if parsed <= today: + return parsed.isoformat() + except ValueError: + pass + return today.isoformat() + + @app.route("/api/parse-screenshot", methods=["POST"]) @limiter.limit("20 per hour") def parse_screenshot(): @@ -3482,14 +3525,20 @@ def parse_screenshot(): f"({_orig_size / 1024:.1f} KB → {_new_size / 1024:.1f} KB)" ) + today = _screenshot_reference_date(request.form.get("client_date")) + PROMPT = ( "You are a running data extractor. The user has uploaded a screenshot from a running app.\n" + f"The user's date today is {today.isoformat()} ({today.strftime('%A')}).\n" "Extract ONLY the following fields as strict JSON, with no extra text or markdown:\n" "{\n" ' "distance_km": ,\n' ' "duration_seconds": ,\n' ' "pace_per_km": ,\n' - ' "date": ,\n' + ' "date": ,\n' + ' "date_relative": ,\n' ' "calories": ,\n' ' "average_heart_rate": ,\n' ' "elevation_gain_m": ,\n' @@ -3586,7 +3635,7 @@ def parse_screenshot(): "time_min": time_min, "duration_seconds": duration_seconds, "pace_per_km": parsed.get("pace_per_km"), - "date": parsed.get("date"), + "date": _resolve_screenshot_date(parsed.get("date"), parsed.get("date_relative"), today), "calories": parsed.get("calories"), "average_heart_rate": parsed.get("average_heart_rate"), "elevation_gain_m": parsed.get("elevation_gain_m"), @@ -3627,7 +3676,8 @@ def confirm_screenshot_import(): date_str = datetime.now().strftime("%Y-%m-%d") try: run_date = datetime.strptime(date_str, "%Y-%m-%d").date() - if run_date > date.today(): + # +1 day: the user's local "today" can be ahead of the server's date + if run_date > date.today() + timedelta(days=1): return jsonify({"error": "Run date cannot be in the future"}), 400 except ValueError: return jsonify({"error": "Invalid date format — expected YYYY-MM-DD"}), 400 diff --git a/static/img/example-run-screenshot.webp b/static/img/example-run-screenshot.webp new file mode 100644 index 0000000000000000000000000000000000000000..05893f307d4d41cbed94f715a8ad259b701b0375 GIT binary patch literal 92518 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%0D<{feEwc2;GC_bt-I}oH)lZ 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 S+@;GzHhy7q;D+k4nZN)X@b?q| literal 0 HcmV?d00001 diff --git a/templates/index.html b/templates/index.html index 090965f..c15dbc8 100644 --- a/templates/index.html +++ b/templates/index.html @@ -437,6 +437,58 @@ box-shadow: 0 0 24px rgba(255, 110, 58, 0.15); } + .ss-example-info-btn { + display: inline-flex; + align-items: center; + justify-content: center; + width: 20px; + height: 20px; + margin-left: 4px; + padding: 0; + border-radius: 50%; + border: 1px solid #ff6e3a; + background: transparent; + color: #ff6e3a; + font-size: 0.65rem; + vertical-align: middle; + cursor: pointer; + transition: background 0.2s ease, color 0.2s ease; + } + + .ss-example-info-btn:hover, + .ss-example-info-btn[aria-expanded="true"] { + background: #ff6e3a; + color: #fff; + } + + .ss-example-panel { + display: flex; + gap: 1rem; + align-items: flex-start; + padding: 0.85rem; + border-radius: 12px; + border: 1px solid var(--border-color); + background: var(--border-subtle); + } + + .ss-example-img { + width: 130px; + height: auto; + border-radius: 10px; + border: 1px solid var(--border-color); + flex-shrink: 0; + } + + @media (max-width: 480px) { + .ss-example-panel { + flex-direction: column; + align-items: center; + } + .ss-example-img { + width: 160px; + } + } + .upload-icon { font-size: 2.8rem; margin-bottom: 1rem; @@ -3661,7 +3713,28 @@
Select Strava CSV File

Upload a screenshot from Strava, Nike Run Club, Apple Fitness, Garmin, Adidas Running, or any running app. Our AI will read the run data. You can review and edit all fields before importing. +

+
📸
Select Screenshot
@@ -6469,6 +6542,12 @@
Sort
} } + // Browser-local YYYY-MM-DD, so "Today" on a screenshot resolves to the user's date + function localDateISO() { + const d = new Date(); + return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}`; + } + async function uploadAndParseScreenshot() { const input = document.getElementById('screenshotInput'); const file = input?.files[0]; @@ -6487,6 +6566,7 @@
Sort
const formData = new FormData(); formData.append('file', file); + formData.append('client_date', localDateISO()); try { const csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content'); @@ -6638,6 +6718,7 @@
Sort
const formData = new FormData(); formData.append('file', file); + formData.append('client_date', localDateISO()); try { const csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content'); diff --git a/tests/test_screenshot_import.py b/tests/test_screenshot_import.py index 96f538a..aff3b02 100644 --- a/tests/test_screenshot_import.py +++ b/tests/test_screenshot_import.py @@ -208,6 +208,64 @@ def test_api_exception_returns_502(self, auth_client): assert "AI service" in res["error"] or "manually" in res["error"] + @patch.dict(os.environ, {"GEMINI_API_KEY": "test-key"}) + def test_relative_today_resolves_to_client_date(self, auth_client): + """Screenshot says "Today" → date is filled with the user's local date.""" + from datetime import date + today = date.today().isoformat() + rel_json = json.dumps({**json.loads(VALID_JSON), "date": None, "date_relative": "today"}) + + with patch("google.genai.Client") as MockClientClass: + mock_client = MagicMock() + mock_client.models.generate_content.return_value = _mock_gemini_response(rel_json) + MockClientClass.return_value = mock_client + + data = { + "file": (io.BytesIO(_fake_png()), "strava.png", "image/png"), + "client_date": today, + } + resp = auth_client.post( + "/api/parse-screenshot", + data=data, + content_type="multipart/form-data", + ) + + assert resp.status_code == 200 + assert resp.get_json()["data"]["date"] == today + + +class TestResolveScreenshotDate: + """Unit tests for the relative-date helpers (no HTTP, no Gemini).""" + + def test_relative_labels(self): + from datetime import date + from app import _resolve_screenshot_date + today = date(2026, 10, 4) # a Sunday + assert _resolve_screenshot_date(None, "Today", today) == "2026-10-04" + assert _resolve_screenshot_date(None, "yesterday", today) == "2026-10-03" + assert _resolve_screenshot_date(None, "friday", today) == "2026-10-02" + # Same weekday as today means a week ago, not today + assert _resolve_screenshot_date(None, "sunday", today) == "2026-09-27" + + def test_absolute_and_fallbacks(self): + from datetime import date + from app import _resolve_screenshot_date + today = date(2026, 10, 4) + assert _resolve_screenshot_date("2026-08-15", None, today) == "2026-08-15" + assert _resolve_screenshot_date(None, None, today) == "2026-10-04" + assert _resolve_screenshot_date("2026-12-25", None, today) == "2026-10-04" + assert _resolve_screenshot_date("garbage", None, today) == "2026-10-04" + + def test_reference_date_rejects_far_off_client_date(self): + from datetime import date, timedelta + from app import _screenshot_reference_date + server_today = date.today() + tomorrow = (server_today + timedelta(days=1)).isoformat() + assert _screenshot_reference_date(tomorrow) == server_today + timedelta(days=1) + assert _screenshot_reference_date("2000-01-01") == server_today + assert _screenshot_reference_date(None) == server_today + + # --------------------------------------------------------------------------- # confirm-screenshot-import tests # ---------------------------------------------------------------------------
+
+ + Example Strava run screenshot + +
+
What a good screenshot looks like
+

Use the run's summary screen, with the stats in view:

+
    +
  • Distance and moving time (required)
  • +
  • Date or "Today at …" line
  • +
  • Avg pace, calories, elevation, heart rate if shown
  • +
+

Works with Strava, Nike Run Club, Apple Fitness, Garmin, Adidas Running and similar apps. Avoid cropped, blurry or share-card images.

+
+
+