diff --git a/server/scanner/NfoFileScanner.js b/server/scanner/NfoFileScanner.js index e450b5c307..7d5b90d663 100644 --- a/server/scanner/NfoFileScanner.js +++ b/server/scanner/NfoFileScanner.js @@ -2,24 +2,26 @@ const { parseNfoMetadata } = require('../utils/parsers/parseNfoMetadata') const { readTextFile } = require('../utils/fileUtils') class NfoFileScanner { - constructor() { } + constructor() {} /** * Parse metadata from .nfo file found in library scan and update bookMetadata - * - * @param {import('../models/LibraryItem').LibraryFileObject} nfoLibraryFileObj - * @param {Object} bookMetadata + * + * @param {import('../models/LibraryItem').LibraryFileObject} nfoLibraryFileObj + * @param {Object} bookMetadata */ async scanBookNfoFile(nfoLibraryFileObj, bookMetadata) { const nfoText = await readTextFile(nfoLibraryFileObj.metadata.path) const nfoMetadata = nfoText ? await parseNfoMetadata(nfoText) : null if (nfoMetadata) { for (const key in nfoMetadata) { - if (key === 'tags') { // Add tags only if tags are empty + if (key === 'tags') { + // Add tags only if tags are empty if (nfoMetadata.tags.length) { bookMetadata.tags = nfoMetadata.tags } - } else if (key === 'genres') { // Add genres only if genres are empty + } else if (key === 'genres') { + // Add genres only if genres are empty if (nfoMetadata.genres.length) { bookMetadata.genres = nfoMetadata.genres } @@ -33,10 +35,12 @@ class NfoFileScanner { } } else if (key === 'series') { if (nfoMetadata.series) { - bookMetadata.series = [{ - name: nfoMetadata.series, - sequence: nfoMetadata.sequence || null - }] + bookMetadata.series = [ + { + name: nfoMetadata.series, + sequence: nfoMetadata.sequence || null + } + ] } } else if (nfoMetadata[key] && key !== 'sequence') { bookMetadata[key] = nfoMetadata[key] @@ -45,4 +49,4 @@ class NfoFileScanner { } } } -module.exports = new NfoFileScanner() \ No newline at end of file +module.exports = new NfoFileScanner() diff --git a/server/utils/parsers/parseNfoMetadata.js b/server/utils/parsers/parseNfoMetadata.js index 56e9400a71..6682a00783 100644 --- a/server/utils/parsers/parseNfoMetadata.js +++ b/server/utils/parsers/parseNfoMetadata.js @@ -81,6 +81,10 @@ function parseNfoMetadata(nfoText) { case 'isbn-13': metadata.isbn = value break + case 'language': + case 'lang': + metadata.language = value + break } } }) diff --git a/test/server/utils/parsers/parseNfoMetadata.test.js b/test/server/utils/parsers/parseNfoMetadata.test.js index 70e6a096f7..9ff51fbe52 100644 --- a/test/server/utils/parsers/parseNfoMetadata.test.js +++ b/test/server/utils/parsers/parseNfoMetadata.test.js @@ -103,6 +103,16 @@ describe('parseNfoMetadata', () => { expect(result.asin).to.equal('B08X5JZJLH') }) + it('parses language', () => { + const nfoText = 'Language: eng' + const result = parseNfoMetadata(nfoText) + expect(result.language).to.equal('eng') + + const nfoText2 = 'lang: deu' + const result2 = parseNfoMetadata(nfoText2) + expect(result2.language).to.equal('deu') + }) + it('parses description', () => { const nfoText = 'Book Description\n=========\nThis is a book.\n It\'s good' const result = parseNfoMetadata(nfoText)