mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-01-22 00:07:52 +01:00
Adds check for duplicated chapter data
This commit is contained in:
parent
80ef8ee890
commit
36d2957fb4
@ -420,27 +420,37 @@ class Book {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// IF first audio file has embedded chapters then use embedded chapters
|
// If first audio file has embedded chapters then use embedded chapters
|
||||||
if (includedAudioFiles[0].chapters?.length) {
|
if (includedAudioFiles[0].chapters?.length) {
|
||||||
Logger.debug(`[Book] setChapters: Using embedded chapters in audio file ${includedAudioFiles[0]?.metadata?.path}`)
|
// If all files chapters are the same, then only make chapters for the first file
|
||||||
this.chapters = []
|
if (
|
||||||
let currChapterId = 0
|
includedAudioFiles.length > 1 &&
|
||||||
let currStartTime = 0
|
includedAudioFiles[0].chapters.length === includedAudioFiles[1].chapters.length &&
|
||||||
|
includedAudioFiles[0].chapters.every((c, i) => c.title === includedAudioFiles[1].chapters[i].title)
|
||||||
|
) {
|
||||||
|
Logger.debug(`[Book] setChapters: Using embedded chapters in first audio file ${includedAudioFiles[0].metadata?.path}`)
|
||||||
|
this.chapters = includedAudioFiles[0].chapters.map((c) => ({ ...c }))
|
||||||
|
} else {
|
||||||
|
Logger.debug(`[Book] setChapters: Using embedded chapters from all audio files ${includedAudioFiles[0].metadata?.path}`)
|
||||||
|
this.chapters = []
|
||||||
|
let currChapterId = 0
|
||||||
|
let currStartTime = 0
|
||||||
|
|
||||||
includedAudioFiles.forEach((file) => {
|
includedAudioFiles.forEach((file) => {
|
||||||
if (file.duration) {
|
if (file.duration) {
|
||||||
let chapters = file.chapters?.map((c) => ({
|
let chapters = file.chapters?.map((c) => ({
|
||||||
...c,
|
...c,
|
||||||
id: c.id + currChapterId,
|
id: c.id + currChapterId,
|
||||||
start: c.start + currStartTime,
|
start: c.start + currStartTime,
|
||||||
end: c.end + currStartTime,
|
end: c.end + currStartTime,
|
||||||
}))
|
}))
|
||||||
this.chapters = this.chapters.concat(chapters)
|
this.chapters = this.chapters.concat(chapters)
|
||||||
|
|
||||||
currChapterId += file.chapters?.length ?? 0
|
currChapterId += file.chapters?.length ?? 0
|
||||||
currStartTime += file.duration
|
currStartTime += file.duration
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
}
|
||||||
} else if (includedAudioFiles.length > 1) {
|
} else if (includedAudioFiles.length > 1) {
|
||||||
// Build chapters from audio files
|
// Build chapters from audio files
|
||||||
this.chapters = []
|
this.chapters = []
|
||||||
|
Loading…
Reference in New Issue
Block a user