Fix local playback sync

This commit is contained in:
advplyr 2025-01-04 15:35:05 -06:00
parent 6d52f88a96
commit 726a9eaea5
2 changed files with 6 additions and 8 deletions

View File

@ -106,7 +106,7 @@ class EmailController {
return res.sendStatus(403) return res.sendStatus(403)
} }
const libraryItem = await Database.libraryItemModel.getOldById(req.body.libraryItemId) const libraryItem = await Database.libraryItemModel.getExpandedById(req.body.libraryItemId)
if (!libraryItem) { if (!libraryItem) {
return res.status(404).send('Library item not found') return res.status(404).send('Library item not found')
} }

View File

@ -120,8 +120,8 @@ class PlaybackSessionManager {
*/ */
async syncLocalSession(user, sessionJson, deviceInfo) { async syncLocalSession(user, sessionJson, deviceInfo) {
// TODO: Combine libraryItem query with library query // TODO: Combine libraryItem query with library query
const libraryItem = await Database.libraryItemModel.getOldById(sessionJson.libraryItemId) const libraryItem = await Database.libraryItemModel.getExpandedById(sessionJson.libraryItemId)
const episode = sessionJson.episodeId && libraryItem && libraryItem.isPodcast ? libraryItem.media.getEpisode(sessionJson.episodeId) : null const episode = sessionJson.episodeId && libraryItem && libraryItem.isPodcast ? libraryItem.media.podcastEpisodes.find((pe) => pe.id === sessionJson.episodeId) : null
if (!libraryItem || (libraryItem.isPodcast && !episode)) { if (!libraryItem || (libraryItem.isPodcast && !episode)) {
Logger.error(`[PlaybackSessionManager] syncLocalSession: Media item not found for session "${sessionJson.displayTitle}" (${sessionJson.id})`) Logger.error(`[PlaybackSessionManager] syncLocalSession: Media item not found for session "${sessionJson.displayTitle}" (${sessionJson.id})`)
return { return {
@ -175,7 +175,8 @@ class PlaybackSessionManager {
// New session from local // New session from local
session = new PlaybackSession(sessionJson) session = new PlaybackSession(sessionJson)
session.deviceInfo = deviceInfo session.deviceInfo = deviceInfo
session.setDuration(libraryItem, sessionJson.episodeId) session.duration = libraryItem.media.getPlaybackDuration(sessionJson.episodeId)
Logger.debug(`[PlaybackSessionManager] Inserting new session for "${session.displayTitle}" (${session.id})`) Logger.debug(`[PlaybackSessionManager] Inserting new session for "${session.displayTitle}" (${session.id})`)
await Database.createPlaybackSession(session) await Database.createPlaybackSession(session)
} else { } else {
@ -346,7 +347,7 @@ class PlaybackSessionManager {
*/ */
async syncSession(user, session, syncData) { async syncSession(user, session, syncData) {
// TODO: Combine libraryItem query with library query // TODO: Combine libraryItem query with library query
const libraryItem = await Database.libraryItemModel.getOldById(session.libraryItemId) const libraryItem = await Database.libraryItemModel.getExpandedById(session.libraryItemId)
if (!libraryItem) { if (!libraryItem) {
Logger.error(`[PlaybackSessionManager] syncSession Library Item not found "${session.libraryItemId}"`) Logger.error(`[PlaybackSessionManager] syncSession Library Item not found "${session.libraryItemId}"`)
return null return null
@ -381,9 +382,6 @@ class PlaybackSessionManager {
}) })
} }
this.saveSession(session) this.saveSession(session)
return {
libraryItem
}
} }
/** /**