diff --git a/server/models/PlaybackSession.js b/server/models/PlaybackSession.js index 14303a036..26b702d8c 100644 --- a/server/models/PlaybackSession.js +++ b/server/models/PlaybackSession.js @@ -273,18 +273,20 @@ class PlaybackSession extends Model { if (!Array.isArray(findResult)) findResult = [findResult] for (const instance of findResult) { + const values = instance?.dataValues + if (instance.mediaItemType === 'book' && instance.book !== undefined) { instance.mediaItem = instance.book - instance.dataValues.mediaItem = instance.dataValues.book + if (values) values.mediaItem = values.book } else if (instance.mediaItemType === 'podcastEpisode' && instance.podcastEpisode !== undefined) { instance.mediaItem = instance.podcastEpisode - instance.dataValues.mediaItem = instance.dataValues.podcastEpisode + if (values) values.mediaItem = values.podcastEpisode } // To prevent mistakes: delete instance.book - delete instance.dataValues.book + if (values) delete values.book delete instance.podcastEpisode - delete instance.dataValues.podcastEpisode + if (values) delete values.podcastEpisode } }) } diff --git a/server/routers/ApiRouter.js b/server/routers/ApiRouter.js index 6487a2151..d6117a04e 100644 --- a/server/routers/ApiRouter.js +++ b/server/routers/ApiRouter.js @@ -583,10 +583,10 @@ class ApiRouter { if (includeRecentSessions) listeningStats.recentSessions = recentSessions listeningSessions.forEach((s) => { const libraryItemId = s.extraData?.libraryItemId || null - let sessionTimeListening = s.timeListening - if (typeof sessionTimeListening == 'string') { - sessionTimeListening = Number(sessionTimeListening) - } + const numericListening = Number(s.timeListening) + const sessionTimeListening = Number.isFinite(numericListening) + ? numericListening + : 0 if (s.dayOfWeek) { if (!listeningStats.dayOfWeek[s.dayOfWeek]) listeningStats.dayOfWeek[s.dayOfWeek] = 0