From ef88972b25e4fef5b3f5ff8d74beeb6359005459 Mon Sep 17 00:00:00 2001 From: advplyr Date: Wed, 20 Apr 2022 18:16:27 -0500 Subject: [PATCH] Fix total listening time stats check for strings, remove from experimental since listening sessions are created for all playbacks --- client/pages/config/users/_id.vue | 10 ++++++---- server/routers/ApiRouter.js | 19 ++++++++++++------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/client/pages/config/users/_id.vue b/client/pages/config/users/_id.vue index fa69fea6..cbee2571 100644 --- a/client/pages/config/users/_id.vue +++ b/client/pages/config/users/_id.vue @@ -19,9 +19,9 @@ >content_copy

-
-
-

Listening Stats (experimental)

+
+
+

Listening Stats

Total Time Listened:  {{ listeningTimePretty }} @@ -55,7 +55,9 @@

{{ item.media && item.media.metadata ? item.media.metadata.title : 'Unknown' }}

by {{ item.media.metadata.authorName }}

- {{ Math.floor(item.progress * 100) }}% + +

{{ Math.floor(item.progress * 100) }}%

+

{{ $dateDistanceFromNow(item.startedAt) }}

diff --git a/server/routers/ApiRouter.js b/server/routers/ApiRouter.js index 17d1ad1e..d40c5416 100644 --- a/server/routers/ApiRouter.js +++ b/server/routers/ApiRouter.js @@ -305,30 +305,35 @@ class ApiRouter { recentSessions: listeningSessions.slice(0, 10) } listeningSessions.forEach((s) => { + var sessionTimeListening = s.timeListening + if (typeof sessionTimeListening == 'string') { + sessionTimeListening = Number(sessionTimeListening) + } + if (s.dayOfWeek) { if (!listeningStats.dayOfWeek[s.dayOfWeek]) listeningStats.dayOfWeek[s.dayOfWeek] = 0 - listeningStats.dayOfWeek[s.dayOfWeek] += s.timeListening + listeningStats.dayOfWeek[s.dayOfWeek] += sessionTimeListening } - if (s.date && s.timeListening > 0) { + if (s.date && sessionTimeListening > 0) { if (!listeningStats.days[s.date]) listeningStats.days[s.date] = 0 - listeningStats.days[s.date] += s.timeListening + listeningStats.days[s.date] += sessionTimeListening if (s.date === today) { - listeningStats.today += s.timeListening + listeningStats.today += sessionTimeListening } } if (!listeningStats.items[s.libraryItemId]) { listeningStats.items[s.libraryItemId] = { id: s.libraryItemId, - timeListening: s.timeListening, + timeListening: sessionTimeListening, mediaMetadata: s.mediaMetadata, lastUpdate: s.lastUpdate } } else { - listeningStats.items[s.libraryItemId].timeListening += s.timeListening + listeningStats.items[s.libraryItemId].timeListening += sessionTimeListening } - listeningStats.totalTime += s.timeListening + listeningStats.totalTime += sessionTimeListening }) return listeningStats }