From f1b69232874050ba1d608c4aa595bb50ec05c77e Mon Sep 17 00:00:00 2001 From: Jos Vooges | STH Date: Sat, 29 Aug 2026 01:45:50 +0200 Subject: [PATCH] Fix stream progress to use bytes sent instead of range offset probes. Co-authored-by: Cursor --- apps/admin-ui/src/app/streams/page.tsx | 2 +- apps/master-api/src/admin/routes.ts | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/admin-ui/src/app/streams/page.tsx b/apps/admin-ui/src/app/streams/page.tsx index 78afead..a908b30 100644 --- a/apps/admin-ui/src/app/streams/page.tsx +++ b/apps/admin-ui/src/app/streams/page.tsx @@ -85,7 +85,7 @@ export default function StreamsPage() {

Eén rij per kijker + titel. Alleen echte streams (>512 KB). Stopt iemand → verdwijnt - binnen ~3 minuten. Voortgang is een schatting op range-positie. + binnen ~3 minuten. Voortgang ≈ gestreamde bytes / bestandsgrootte.

diff --git a/apps/master-api/src/admin/routes.ts b/apps/master-api/src/admin/routes.ts index 2c9ec92..f1ee1c1 100644 --- a/apps/master-api/src/admin/routes.ts +++ b/apps/master-api/src/admin/routes.ts @@ -298,9 +298,10 @@ export async function registerAdminRoutes(app: FastifyInstance, config: Config) .sort((a, b) => b.lastActivity.getTime() - a.lastActivity.getTime()) .map((s) => { const fileSize = Number(s.fileSizeBytes || s.mediaFile.sizeBytes || 0); - const offset = Number(s.lastByteOffset || 0); + const sent = Number(s.bytesSent || 0); + // bytesSent loopt netjes op; lastByteOffset springt vaak naar EOF door player Range-probes. const progressPercent = - fileSize > 0 ? Math.min(100, Math.max(0, (offset / fileSize) * 100)) : null; + fileSize > 0 ? Math.min(100, Math.max(0, (sent / fileSize) * 100)) : null; const title = s.mediaFile.movie?.title ?? (s.mediaFile.episode