Merge pull request #735 from samosbor/master

Update BookFinder.js: Retry Search with Clean Title and Author if No Books Found
This commit is contained in:
advplyr 2022-06-17 15:46:57 -05:00 committed by GitHub
commit c83b3f19f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -180,11 +180,11 @@ class BookFinder {
Logger.debug(`Book Search: title: "${title}", author: "${author}", provider: ${provider}`)
if (provider === 'google') {
return this.getGoogleBooksResults(title, author)
books = this.getGoogleBooksResults(title, author)
} else if (provider === 'audible') {
return this.getAudibleResults(title, author, asin)
books = this.getAudibleResults(title, author, asin)
} else if (provider === 'itunes') {
return this.getiTunesAudiobooksResults(title, author)
books = this.getiTunesAudiobooksResults(title, author)
} else if (provider === 'libgen') {
books = await this.getLibGenResults(title, author, maxTitleDistance, maxAuthorDistance)
} else if (provider === 'openlibrary') {
@ -208,6 +208,18 @@ class BookFinder {
}
}
if (!books.length && !options.currentlyTryingCleaned) {
var cleanedTitle = this.cleanTitleForCompares(title)
var cleanedAuthor = this.cleanAuthorForCompares(author)
if (cleanedTitle == title && cleanedAuthor == author) return books
Logger.debug(`Book Search, no matches.. checking cleaned title and author`)
options.currentlyTryingCleaned = true
return this.search(provider, cleanedTitle, cleanedAuthor, isbn, asin, options)
}
if (["google", "audible", "itunes"].includes(provider)) return books
return books.sort((a, b) => {
return a.totalDistance - b.totalDistance
})