diff --git a/server/managers/PlaybackSessionManager.js b/server/managers/PlaybackSessionManager.js index 19bbfe13..b0d935f4 100644 --- a/server/managers/PlaybackSessionManager.js +++ b/server/managers/PlaybackSessionManager.js @@ -47,7 +47,7 @@ class PlaybackSessionManager { async startSessionRequest(req, res, episodeId) { const deviceInfo = this.getDeviceInfo(req) - + Logger.debug(`[PlaybackSessionManager] startSessionRequest for device ${deviceInfo.deviceDescription}`) const { user, libraryItem, body: options } = req const session = await this.startSession(user, deviceInfo, libraryItem, episodeId, options) res.json(session.toJSONForClient(libraryItem)) @@ -132,7 +132,7 @@ class PlaybackSessionManager { // Close any sessions already open for user const userSessions = this.sessions.filter(playbackSession => playbackSession.userId === user.id) for (const session of userSessions) { - Logger.info(`[PlaybackSessionManager] startSession: Closing open session "${session.displayTitle}" for user "${user.username}"`) + Logger.info(`[PlaybackSessionManager] startSession: Closing open session "${session.displayTitle}" for user "${user.username}" (Device: ${session.deviceDescription})`) await this.closeSession(user, session, null) } @@ -163,11 +163,11 @@ class PlaybackSessionManager { } else { let audioTracks = [] if (shouldDirectPlay) { - Logger.debug(`[PlaybackSessionManager] "${user.username}" starting direct play session for item "${libraryItem.id}" with id ${newPlaybackSession.id}`) + Logger.debug(`[PlaybackSessionManager] "${user.username}" starting direct play session for item "${libraryItem.id}" with id ${newPlaybackSession.id} (Device: ${newPlaybackSession.deviceDescription})`) audioTracks = libraryItem.getDirectPlayTracklist(episodeId) newPlaybackSession.playMethod = PlayMethod.DIRECTPLAY } else { - Logger.debug(`[PlaybackSessionManager] "${user.username}" starting stream session for item "${libraryItem.id}"`) + Logger.debug(`[PlaybackSessionManager] "${user.username}" starting stream session for item "${libraryItem.id}" (Device: ${newPlaybackSession.deviceDescription})`) const stream = new Stream(newPlaybackSession.id, this.StreamsPath, user, libraryItem, episodeId, userStartTime) await stream.generatePlaylist() stream.start() // Start transcode @@ -177,7 +177,7 @@ class PlaybackSessionManager { newPlaybackSession.playMethod = PlayMethod.TRANSCODE stream.on('closed', () => { - Logger.debug(`[PlaybackSessionManager] Stream closed for session "${newPlaybackSession.id}"`) + Logger.debug(`[PlaybackSessionManager] Stream closed for session "${newPlaybackSession.id}" (Device: ${newPlaybackSession.deviceDescription})`) newPlaybackSession.stream = null }) } @@ -202,7 +202,7 @@ class PlaybackSessionManager { session.currentTime = syncData.currentTime session.addListeningTime(syncData.timeListened) - Logger.debug(`[PlaybackSessionManager] syncSession "${session.id}" | Total Time Listened: ${session.timeListening}`) + Logger.debug(`[PlaybackSessionManager] syncSession "${session.id}" (Device: ${session.deviceDescription}) | Total Time Listened: ${session.timeListening}`) const itemProgressUpdate = { duration: syncData.duration, diff --git a/server/objects/DeviceInfo.js b/server/objects/DeviceInfo.js index 2f97d2ad..4015be70 100644 --- a/server/objects/DeviceInfo.js +++ b/server/objects/DeviceInfo.js @@ -52,6 +52,14 @@ class DeviceInfo { return obj } + get deviceDescription() { + if (this.model) { // Set from mobile apps + if (this.sdkVersion) return `${this.model} SDK ${this.sdkVersion} / v${this.clientVersion}` + return `${this.model} / v${this.clientVersion}` + } + return `${this.osName} ${this.osVersion} / ${this.browserName}` + } + setData(ip, ua, clientDeviceInfo, serverVersion) { this.ipAddress = ip || null @@ -62,7 +70,7 @@ class DeviceInfo { this.osVersion = uaObj.os.version || null this.deviceType = uaObj.device.type || null - var cdi = clientDeviceInfo || {} + const cdi = clientDeviceInfo || {} this.clientVersion = cdi.clientVersion || null this.manufacturer = cdi.manufacturer || null this.model = cdi.model || null diff --git a/server/objects/PlaybackSession.js b/server/objects/PlaybackSession.js index 31763a44..be50f57e 100644 --- a/server/objects/PlaybackSession.js +++ b/server/objects/PlaybackSession.js @@ -146,6 +146,11 @@ class PlaybackSession { return Math.max(0, Math.min(this.currentTime / this.duration, 1)) } + get deviceDescription() { + if (!this.deviceInfo) return 'No Device Info' + return this.deviceInfo.deviceDescription + } + setData(libraryItem, user, mediaPlayer, deviceInfo, startTime, episodeId = null) { this.id = getId('play') this.userId = user.id