Merge pull request #3690 from Vito0912/feat/metadataForPlaybackSessions

Improved Metadata Handling and PlaybackSession Metadata Robustness
This commit is contained in:
advplyr 2025-04-18 17:08:12 -05:00 committed by GitHub
commit 04fb8fa61d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -175,6 +175,25 @@ class PlaybackSessionManager {
// New session from local
session = new PlaybackSession(sessionJson)
session.deviceInfo = deviceInfo
if (session.mediaMetadata == null) {
session.mediaMetadata = {}
}
// Populate mediaMetadata with the current library items metadata for any keys not set by client
const libraryItemMediaMetadata = libraryItem.media.oldMetadataToJSON()
for (const key in libraryItemMediaMetadata) {
if (session.mediaMetadata[key] === undefined) {
session.mediaMetadata[key] = libraryItemMediaMetadata[key]
}
}
if (session.displayTitle == null || session.displayTitle === '') {
session.displayTitle = libraryItem.title
}
if (session.displayAuthor == null || session.displayAuthor === '') {
session.displayAuthor = libraryItem.authorNamesFirstLast
}
session.duration = libraryItem.media.getPlaybackDuration(sessionJson.episodeId)
Logger.debug(`[PlaybackSessionManager] Inserting new session for "${session.displayTitle}" (${session.id})`)