diff --git a/server/finders/BookFinder.js b/server/finders/BookFinder.js index f218587c..2c6fc9ee 100644 --- a/server/finders/BookFinder.js +++ b/server/finders/BookFinder.js @@ -152,11 +152,12 @@ class BookFinder { /** * * @param {string} title - * @param {string} author + * @param {string} author + * @param {string} isbn * @param {string} providerSlug * @returns {Promise} */ - async getCustomProviderResults(title, author, providerSlug) { + async getCustomProviderResults(title, author, isbn, providerSlug) { const books = await this.customProviderAdapter.search(title, author, providerSlug, 'book') if (this.verbose) Logger.debug(`Custom provider '${providerSlug}' Search Results: ${books.length || 0}`) @@ -333,7 +334,7 @@ class BookFinder { // Custom providers are assumed to be correct if (provider.startsWith('custom-')) { - return this.getCustomProviderResults(title, author, provider) + return this.getCustomProviderResults(title, author, isbn, provider) } if (!title) diff --git a/server/providers/CustomProviderAdapter.js b/server/providers/CustomProviderAdapter.js index 3d5209c7..1ec75457 100644 --- a/server/providers/CustomProviderAdapter.js +++ b/server/providers/CustomProviderAdapter.js @@ -9,11 +9,12 @@ class CustomProviderAdapter { * * @param {string} title * @param {string} author + * @param {string} isbn * @param {string} providerSlug * @param {string} mediaType * @returns {Promise} */ - async search(title, author, providerSlug, mediaType) { + async search(title, author, isbn, providerSlug, mediaType) { const providerId = providerSlug.split('custom-')[1] const provider = await Database.customMetadataProviderModel.findByPk(providerId) @@ -29,6 +30,9 @@ class CustomProviderAdapter { if (author) { queryObj.author = author } + if (isbn) { + queryObj.isbn = isbn + } const queryString = (new URLSearchParams(queryObj)).toString() // Setup headers