mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-06-03 05:34:26 -04:00
Update local session mediaMetadata with current item mediaMetadata for undefined values
This commit is contained in:
parent
d7f0815fb3
commit
2caa861b8a
@ -175,29 +175,24 @@ class PlaybackSessionManager {
|
|||||||
// New session from local
|
// New session from local
|
||||||
session = new PlaybackSession(sessionJson)
|
session = new PlaybackSession(sessionJson)
|
||||||
session.deviceInfo = deviceInfo
|
session.deviceInfo = deviceInfo
|
||||||
// This makes sure that the client's metadata is preferred over the library's metadata, if available, to make a non-breaking change
|
|
||||||
if (session.mediaMetadata == null) {
|
if (session.mediaMetadata == null) {
|
||||||
session.mediaMetadata = {}
|
session.mediaMetadata = {}
|
||||||
}
|
}
|
||||||
|
|
||||||
const { title, subtitle, narrators, authors, author, series, genres, type } = libraryItem?.media?.metadata || {}
|
// Populate mediaMetadata with the current library items metadata for any keys not set by client
|
||||||
session.mediaMetadata = {
|
const libraryItemMediaMetadata = libraryItem.media.oldMetadataToJSON()
|
||||||
title: session.mediaMetadata.title || title,
|
for (const key in libraryItemMediaMetadata) {
|
||||||
subtitle: session.mediaMetadata.subtitle || subtitle,
|
if (session.mediaMetadata[key] === undefined) {
|
||||||
narrators: session.mediaMetadata.narrators || narrators,
|
session.mediaMetadata[key] = libraryItemMediaMetadata[key]
|
||||||
authors: session.mediaMetadata.authors || authors,
|
}
|
||||||
author: session.mediaMetadata.author || author,
|
|
||||||
series: session.mediaMetadata.series || series,
|
|
||||||
genres: session.mediaMetadata.genres || genres,
|
|
||||||
type: session.mediaMetadata.type || type,
|
|
||||||
...session.mediaMetadata
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(session.displayTitle == null || session.displayTitle === '') {
|
if (session.displayTitle == null || session.displayTitle === '') {
|
||||||
session.displayTitle = libraryItem?.media?.metadata?.title ?? ''
|
session.displayTitle = libraryItem.title
|
||||||
}
|
}
|
||||||
if(session.displayAuthor == null || session.displayAuthor === '') {
|
if (session.displayAuthor == null || session.displayAuthor === '') {
|
||||||
session.displayAuthor = libraryItem?.media?.metadata?.authors?.map(a => a.name).join(', ') ?? libraryItem?.media?.metadata?.author ?? ''
|
session.displayAuthor = libraryItem.authorNamesFirstLast
|
||||||
}
|
}
|
||||||
session.duration = libraryItem.media.getPlaybackDuration(sessionJson.episodeId)
|
session.duration = libraryItem.media.getPlaybackDuration(sessionJson.episodeId)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user