Update cover image set on first scan

This commit is contained in:
advplyr 2023-02-23 17:55:11 -06:00
parent 002fb7a35e
commit f58e2b6dce

View File

@ -197,9 +197,15 @@ class LibraryItem {
if (key === 'libraryFiles') { if (key === 'libraryFiles') {
this.libraryFiles = payload.libraryFiles.map(lf => lf.clone()) this.libraryFiles = payload.libraryFiles.map(lf => lf.clone())
// Use first image library file as cover // Set cover image
const firstImageFile = this.libraryFiles.find(lf => lf.fileType === 'image') const imageFiles = this.libraryFiles.filter(lf => lf.fileType === 'image')
if (firstImageFile) this.media.coverPath = firstImageFile.metadata.path const coverMatch = imageFiles.find(iFile => /\/cover\.[^.\/]*$/.test(iFile.metadata.path))
if (coverMatch) {
this.media.coverPath = coverMatch.metadata.path
} else if (imageFiles.length) {
this.media.coverPath = imageFiles[0].metadata.path
}
} else if (this[key] !== undefined && key !== 'media') { } else if (this[key] !== undefined && key !== 'media') {
this[key] = payload[key] this[key] = payload[key]
} }
@ -444,12 +450,11 @@ class LibraryItem {
// Set cover image if not set // Set cover image if not set
const imageFiles = this.libraryFiles.filter(lf => lf.fileType === 'image') const imageFiles = this.libraryFiles.filter(lf => lf.fileType === 'image')
if (imageFiles.length && !this.media.coverPath) { if (imageFiles.length && !this.media.coverPath) {
//attempt to find a file called cover.<ext> otherwise just fall back to the first image found // attempt to find a file called cover.<ext> otherwise just fall back to the first image found
var coverMatch = imageFiles.find(iFile => /\/cover\.[^.\/]*$/.test(iFile.metadata.path)) const coverMatch = imageFiles.find(iFile => /\/cover\.[^.\/]*$/.test(iFile.metadata.path))
if (coverMatch) { if (coverMatch) {
this.media.coverPath = coverMatch.metadata.path this.media.coverPath = coverMatch.metadata.path
} } else {
else {
this.media.coverPath = imageFiles[0].metadata.path this.media.coverPath = imageFiles[0].metadata.path
} }
Logger.info('[LibraryItem] Set media cover path', this.media.coverPath) Logger.info('[LibraryItem] Set media cover path', this.media.coverPath)