Fix:Set ebookFormat on scans #2126

This commit is contained in:
advplyr 2023-09-19 15:42:38 -05:00
parent 604f52762b
commit 9967a5dc66
4 changed files with 6 additions and 4 deletions

View File

@ -16,7 +16,7 @@ class EBookFile {
construct(file) { construct(file) {
this.ino = file.ino this.ino = file.ino
this.metadata = new FileMetadata(file.metadata) this.metadata = new FileMetadata(file.metadata)
this.ebookFormat = file.ebookFormat this.ebookFormat = file.ebookFormat || this.metadata.format
this.addedAt = file.addedAt this.addedAt = file.addedAt
this.updatedAt = file.updatedAt this.updatedAt = file.updatedAt
} }

View File

@ -73,7 +73,7 @@ class Book {
numInvalidAudioFiles: this.invalidAudioFiles.length, numInvalidAudioFiles: this.invalidAudioFiles.length,
duration: this.duration, duration: this.duration,
size: this.size, size: this.size,
ebookFormat: this.ebookFile ? this.ebookFile.ebookFormat : null ebookFormat: this.ebookFile?.ebookFormat
} }
} }
@ -90,7 +90,7 @@ class Book {
size: this.size, size: this.size,
tracks: this.tracks.map(t => t.toJSON()), tracks: this.tracks.map(t => t.toJSON()),
missingParts: [...this.missingParts], missingParts: [...this.missingParts],
ebookFile: this.ebookFile ? this.ebookFile.toJSON() : null ebookFile: this.ebookFile?.toJSON() || null
} }
} }

View File

@ -160,6 +160,7 @@ class BookScanner {
// Prefer to use an epub ebook then fallback to the first ebook found // Prefer to use an epub ebook then fallback to the first ebook found
let ebookLibraryFile = libraryItemData.ebookLibraryFiles.find(lf => lf.metadata.ext.slice(1).toLowerCase() === 'epub') let ebookLibraryFile = libraryItemData.ebookLibraryFiles.find(lf => lf.metadata.ext.slice(1).toLowerCase() === 'epub')
if (!ebookLibraryFile) ebookLibraryFile = libraryItemData.ebookLibraryFiles[0] if (!ebookLibraryFile) ebookLibraryFile = libraryItemData.ebookLibraryFiles[0]
ebookLibraryFile = ebookLibraryFile.toJSON()
// Ebook file is the same as library file except for additional `ebookFormat` // Ebook file is the same as library file except for additional `ebookFormat`
ebookLibraryFile.ebookFormat = ebookLibraryFile.metadata.ext.slice(1).toLowerCase() ebookLibraryFile.ebookFormat = ebookLibraryFile.metadata.ext.slice(1).toLowerCase()
media.ebookFile = ebookLibraryFile media.ebookFile = ebookLibraryFile
@ -386,6 +387,7 @@ class BookScanner {
} }
if (ebookLibraryFile) { if (ebookLibraryFile) {
ebookLibraryFile = ebookLibraryFile.toJSON()
ebookLibraryFile.ebookFormat = ebookLibraryFile.metadata.ext.slice(1).toLowerCase() ebookLibraryFile.ebookFormat = ebookLibraryFile.metadata.ext.slice(1).toLowerCase()
} }

View File

@ -102,7 +102,7 @@ class LibraryItemScanData {
return this.libraryFiles.filter(lf => globals.SupportedImageTypes.includes(lf.metadata.ext?.slice(1).toLowerCase() || '')) return this.libraryFiles.filter(lf => globals.SupportedImageTypes.includes(lf.metadata.ext?.slice(1).toLowerCase() || ''))
} }
/** @type {LibraryItem.LibraryFileObject[]} */ /** @type {import('../objects/files/LibraryFile')[]} */
get ebookLibraryFiles() { get ebookLibraryFiles() {
return this.libraryFiles.filter(lf => globals.SupportedEbookTypes.includes(lf.metadata.ext?.slice(1).toLowerCase() || '')) return this.libraryFiles.filter(lf => globals.SupportedEbookTypes.includes(lf.metadata.ext?.slice(1).toLowerCase() || ''))
} }