Lower finished threshold from 90% to 75%

Applies to frontend player, backend safety net, and stats display.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-27 00:37:57 +02:00
parent c26fc3483c
commit 1ee6edcb17
4 changed files with 5 additions and 5 deletions

View File

@@ -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

View File

@@ -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)