From 1ee6edcb17259097e0ddfbec3593b44f3109ae4d Mon Sep 17 00:00:00 2001 From: Mattias Thall Date: Wed, 27 May 2026 00:37:57 +0200 Subject: [PATCH] Lower finished threshold from 90% to 75% Applies to frontend player, backend safety net, and stats display. Co-Authored-By: Claude Sonnet 4.6 --- backend/routers/stats.py | 2 +- backend/routers/videos.py | 4 ++-- frontend/src/components/VideoPlayer.jsx | 2 +- frontend/src/pages/Stats.jsx | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/backend/routers/stats.py b/backend/routers/stats.py index 06b70b3..0a7f36c 100644 --- a/backend/routers/stats.py +++ b/backend/routers/stats.py @@ -85,7 +85,7 @@ def get_stats( avg_completion = db.execute( text(""" SELECT AVG(uv.completion_percent) AS avg_pct, - COUNT(CASE WHEN uv.completion_percent >= 90 THEN 1 END) AS finished_count, + COUNT(CASE WHEN uv.completion_percent >= 75 THEN 1 END) AS finished_count, COUNT(CASE WHEN uv.completion_percent < 20 AND uv.completion_percent IS NOT NULL THEN 1 END) AS bailed_count, SUM(uv.rewatch_count) AS total_rewatches, COUNT(CASE WHEN uv.rewatch_count > 0 THEN 1 END) AS rewatched_videos diff --git a/backend/routers/videos.py b/backend/routers/videos.py index 1dc34fc..bdc69fb 100644 --- a/backend/routers/videos.py +++ b/backend/routers/videos.py @@ -999,10 +999,10 @@ def update_progress( if pct < 0.20: _update_affinity(db, current_user.id, video, -0.5) - # Backend safety net: auto-mark watched at ≥90% completion even if the frontend + # Backend safety net: auto-mark watched at ≥75% completion even if the frontend # didn't send watched=True (e.g. browser closed before debounce fired) if (not prev_watched and not uv.watched - and uv.completion_percent is not None and uv.completion_percent >= 90 + and uv.completion_percent is not None and uv.completion_percent >= 75 and video.duration_seconds and video.duration_seconds > 60): uv.watched = True _update_affinity(db, current_user.id, video, +2.0) diff --git a/frontend/src/components/VideoPlayer.jsx b/frontend/src/components/VideoPlayer.jsx index ae70df0..7f32e1d 100644 --- a/frontend/src/components/VideoPlayer.jsx +++ b/frontend/src/components/VideoPlayer.jsx @@ -158,7 +158,7 @@ export default function VideoPlayer() { saveTimerRef.current = setTimeout(() => { if (video?.id) { const duration = video.duration_seconds ?? 0; - const watched = duration > 0 && secs >= duration * 0.9; + const watched = duration > 0 && secs >= duration * 0.75; updateProgress(video.id, { watch_progress_seconds: secs, watched }); } }, 10_000); diff --git a/frontend/src/pages/Stats.jsx b/frontend/src/pages/Stats.jsx index 306bd95..a566cff 100644 --- a/frontend/src/pages/Stats.jsx +++ b/frontend/src/pages/Stats.jsx @@ -87,7 +87,7 @@ export default function Stats() {