mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-04-20 01:17:45 +02: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} asin
|
||||||
* @param {string} region
|
* @param {string} region
|
||||||
* @param {number} [timeout] response timeout in ms
|
* @param {number} [timeout] response timeout in ms
|
||||||
* @returns {Promise<Object[]>}
|
* @returns {Promise<Object>}
|
||||||
*/
|
*/
|
||||||
asinSearch(asin, region, timeout = this.#responseTimeout) {
|
asinSearch(asin, region, timeout = this.#responseTimeout) {
|
||||||
if (!asin) return []
|
if (!asin) return null
|
||||||
if (!timeout || isNaN(timeout)) timeout = this.#responseTimeout
|
if (!timeout || isNaN(timeout)) timeout = this.#responseTimeout
|
||||||
|
|
||||||
asin = encodeURIComponent(asin.toUpperCase())
|
asin = encodeURIComponent(asin.toUpperCase())
|
||||||
@ -102,12 +102,12 @@ class Audible {
|
|||||||
timeout
|
timeout
|
||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (!res || !res.data || !res.data.asin) return null
|
if (!res?.data?.asin) return null
|
||||||
return res.data
|
return res.data
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
Logger.error('[Audible] ASIN search error', error)
|
Logger.error('[Audible] ASIN search error', error)
|
||||||
return []
|
return null
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,16 +127,18 @@ class Audible {
|
|||||||
}
|
}
|
||||||
if (!timeout || isNaN(timeout)) timeout = this.#responseTimeout
|
if (!timeout || isNaN(timeout)) timeout = this.#responseTimeout
|
||||||
|
|
||||||
let items
|
let items = []
|
||||||
if (asin && isValidASIN(asin.toUpperCase())) {
|
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())) {
|
if (!items.length && isValidASIN(title.toUpperCase())) {
|
||||||
items = [await this.asinSearch(title, region, timeout)]
|
const item = await this.asinSearch(title, region, timeout)
|
||||||
|
if (item) items.push(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!items) {
|
if (!items.length) {
|
||||||
const queryObj = {
|
const queryObj = {
|
||||||
num_results: '10',
|
num_results: '10',
|
||||||
products_sort_by: 'Relevance',
|
products_sort_by: 'Relevance',
|
||||||
@ -160,7 +162,7 @@ class Audible {
|
|||||||
return []
|
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