mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-01-22 00:07:52 +01:00
Fix:getNarrators API endpoint check narrators are strings #1770
This commit is contained in:
parent
b0bf9604bb
commit
bac09de23d
@ -709,9 +709,11 @@ class LibraryController {
|
|||||||
async getNarrators(req, res) {
|
async getNarrators(req, res) {
|
||||||
const narrators = {}
|
const narrators = {}
|
||||||
req.libraryItems.forEach((li) => {
|
req.libraryItems.forEach((li) => {
|
||||||
if (li.media.metadata.narrators && li.media.metadata.narrators.length) {
|
if (li.media.metadata.narrators?.length) {
|
||||||
li.media.metadata.narrators.forEach((n) => {
|
li.media.metadata.narrators.forEach((n) => {
|
||||||
if (!narrators[n]) {
|
if (typeof n !== 'string') {
|
||||||
|
Logger.error(`[LibraryController] getNarrators: Invalid narrator "${n}" on book "${li.media.metadata.title}"`)
|
||||||
|
} else if (!narrators[n]) {
|
||||||
narrators[n] = {
|
narrators[n] = {
|
||||||
id: encodeURIComponent(Buffer.from(n).toString('base64')),
|
id: encodeURIComponent(Buffer.from(n).toString('base64')),
|
||||||
name: n,
|
name: n,
|
||||||
|
@ -27,9 +27,9 @@ class BookMetadata {
|
|||||||
construct(metadata) {
|
construct(metadata) {
|
||||||
this.title = metadata.title
|
this.title = metadata.title
|
||||||
this.subtitle = metadata.subtitle
|
this.subtitle = metadata.subtitle
|
||||||
this.authors = (metadata.authors && metadata.authors.map) ? metadata.authors.map(a => ({ ...a })) : []
|
this.authors = (metadata.authors?.map) ? metadata.authors.map(a => ({ ...a })) : []
|
||||||
this.narrators = metadata.narrators ? [...metadata.narrators] : []
|
this.narrators = metadata.narrators ? [...metadata.narrators].filter(n => n) : []
|
||||||
this.series = (metadata.series && metadata.series.map) ? metadata.series.map(s => ({ ...s })) : []
|
this.series = (metadata.series?.map) ? metadata.series.map(s => ({ ...s })) : []
|
||||||
this.genres = metadata.genres ? [...metadata.genres] : []
|
this.genres = metadata.genres ? [...metadata.genres] : []
|
||||||
this.publishedYear = metadata.publishedYear || null
|
this.publishedYear = metadata.publishedYear || null
|
||||||
this.publishedDate = metadata.publishedDate || null
|
this.publishedDate = metadata.publishedDate || null
|
||||||
@ -230,7 +230,7 @@ class BookMetadata {
|
|||||||
updateNarrator(oldNarratorName, newNarratorName) {
|
updateNarrator(oldNarratorName, newNarratorName) {
|
||||||
if (!this.hasNarrator(oldNarratorName)) return false
|
if (!this.hasNarrator(oldNarratorName)) return false
|
||||||
this.narrators = this.narrators.filter(n => n !== oldNarratorName)
|
this.narrators = this.narrators.filter(n => n !== oldNarratorName)
|
||||||
if (!this.hasNarrator(newNarratorName)) {
|
if (newNarratorName && !this.hasNarrator(newNarratorName)) {
|
||||||
this.narrators.push(newNarratorName)
|
this.narrators.push(newNarratorName)
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
|
Loading…
Reference in New Issue
Block a user