Skip to content

Commit

Permalink
Fix:Server crash on scan for library with no metadataPrecedence set #…
Browse files Browse the repository at this point in the history
  • Loading branch information
advplyr committed Sep 17, 2024
1 parent 2f49a08 commit 22ad16e
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 5 deletions.
6 changes: 5 additions & 1 deletion server/models/Library.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,15 @@ class Library extends Model {
epubsAllowScriptedContent: false,
hideSingleBookSeries: false,
onlyShowLaterBooksInContinueSeries: false,
metadataPrecedence: ['folderStructure', 'audioMetatags', 'nfoFile', 'txtFiles', 'opfFile', 'absMetadata']
metadataPrecedence: this.defaultMetadataPrecedence
}
}
}

static get defaultMetadataPrecedence() {
return ['folderStructure', 'audioMetatags', 'nfoFile', 'txtFiles', 'opfFile', 'absMetadata']
}

/**
*
* @returns {Promise<Library[]>}
Expand Down
2 changes: 1 addition & 1 deletion server/scanner/BookScanner.js
Original file line number Diff line number Diff line change
Expand Up @@ -655,7 +655,7 @@ class BookScanner {
}

const bookMetadataSourceHandler = new BookScanner.BookMetadataSourceHandler(bookMetadata, audioFiles, ebookFileScanData, libraryItemData, libraryScan, existingLibraryItemId)
const metadataPrecedence = librarySettings.metadataPrecedence || ['folderStructure', 'audioMetatags', 'nfoFile', 'txtFiles', 'opfFile', 'absMetadata']
const metadataPrecedence = librarySettings.metadataPrecedence || Database.libraryModel.defaultMetadataPrecedence
libraryScan.addLog(LogLevel.DEBUG, `"${bookMetadata.title}" Getting metadata with precedence [${metadataPrecedence.join(', ')}]`)
for (const metadataSource of metadataPrecedence) {
if (bookMetadataSourceHandler[metadataSource]) {
Expand Down
7 changes: 4 additions & 3 deletions server/scanner/LibraryScanner.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,10 @@ class LibraryScanner {
return
}

if (library.isBook && library.settings.metadataPrecedence.join() !== library.lastScanMetadataPrecedence.join()) {
const metadataPrecedence = library.settings.metadataPrecedence || Database.libraryModel.defaultMetadataPrecedence
if (library.isBook && metadataPrecedence.join() !== library.lastScanMetadataPrecedence.join()) {
const lastScanMetadataPrecedence = library.lastScanMetadataPrecedence?.join() || 'Unset'
Logger.info(`[LibraryScanner] Library metadata precedence changed since last scan. From [${lastScanMetadataPrecedence}] to [${library.settings.metadataPrecedence.join()}]`)
Logger.info(`[LibraryScanner] Library metadata precedence changed since last scan. From [${lastScanMetadataPrecedence}] to [${metadataPrecedence.join()}]`)
forceRescan = true
}

Expand Down Expand Up @@ -90,7 +91,7 @@ class LibraryScanner {
library.lastScanVersion = packageJson.version
if (library.isBook) {
const newExtraData = library.extraData || {}
newExtraData.lastScanMetadataPrecedence = library.settings.metadataPrecedence
newExtraData.lastScanMetadataPrecedence = metadataPrecedence
library.extraData = newExtraData
library.changed('extraData', true)
}
Expand Down

0 comments on commit 22ad16e

Please sign in to comment.