mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-03-24 00:16:39 +01:00
Fix:Audible book match not falling back to search after failed ASIN #3314
This commit is contained in:
parent
7a7a779824
commit
149bb3e5b2
@ -87,10 +87,10 @@ class Audible {
|
||||
* @param {string} asin
|
||||
* @param {string} region
|
||||
* @param {number} [timeout] response timeout in ms
|
||||
* @returns {Promise<Object[]>}
|
||||
* @returns {Promise<Object>}
|
||||
*/
|
||||
asinSearch(asin, region, timeout = this.#responseTimeout) {
|
||||
if (!asin) return []
|
||||
if (!asin) return null
|
||||
if (!timeout || isNaN(timeout)) timeout = this.#responseTimeout
|
||||
|
||||
asin = encodeURIComponent(asin.toUpperCase())
|
||||
@ -102,12 +102,12 @@ class Audible {
|
||||
timeout
|
||||
})
|
||||
.then((res) => {
|
||||
if (!res || !res.data || !res.data.asin) return null
|
||||
if (!res?.data?.asin) return null
|
||||
return res.data
|
||||
})
|
||||
.catch((error) => {
|
||||
Logger.error('[Audible] ASIN search error', error)
|
||||
return []
|
||||
return null
|
||||
})
|
||||
}
|
||||
|
||||
@ -127,16 +127,18 @@ class Audible {
|
||||
}
|
||||
if (!timeout || isNaN(timeout)) timeout = this.#responseTimeout
|
||||
|
||||
let items
|
||||
let items = []
|
||||
if (asin && isValidASIN(asin.toUpperCase())) {
|
||||
items = [await this.asinSearch(asin, region, timeout)]
|
||||
const item = await this.asinSearch(asin, region, timeout)
|
||||
if (item) items.push(item)
|
||||
}
|
||||
|
||||
if (!items && isValidASIN(title.toUpperCase())) {
|
||||
items = [await this.asinSearch(title, region, timeout)]
|
||||
if (!items.length && isValidASIN(title.toUpperCase())) {
|
||||
const item = await this.asinSearch(title, region, timeout)
|
||||
if (item) items.push(item)
|
||||
}
|
||||
|
||||
if (!items) {
|
||||
if (!items.length) {
|
||||
const queryObj = {
|
||||
num_results: '10',
|
||||
products_sort_by: 'Relevance',
|
||||
@ -160,7 +162,7 @@ class Audible {
|
||||
return []
|
||||
})
|
||||
}
|
||||
return items?.map((item) => this.cleanResult(item)) || []
|
||||
return items.filter(Boolean).map((item) => this.cleanResult(item)) || []
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user