Fixes m4b chapters only taken from first file.

This commit is contained in:
Joakim Ramer 2023-01-29 23:57:37 +01:00
parent 5724887785
commit 80ef8ee890
No known key found for this signature in database
GPG Key ID: 3DD9039EF02C0573

View File

@ -421,9 +421,26 @@ class Book {
}
// IF first audio file has embedded chapters then use embedded chapters
if (includedAudioFiles[0].chapters && includedAudioFiles[0].chapters.length) {
Logger.debug(`[Book] setChapters: Using embedded chapters in audio file ${includedAudioFiles[0].metadata.path}`)
this.chapters = includedAudioFiles[0].chapters.map(c => ({ ...c }))
if (includedAudioFiles[0].chapters?.length) {
Logger.debug(`[Book] setChapters: Using embedded chapters in audio file ${includedAudioFiles[0]?.metadata?.path}`)
this.chapters = []
let currChapterId = 0
let currStartTime = 0
includedAudioFiles.forEach((file) => {
if (file.duration) {
let chapters = file.chapters?.map((c) => ({
...c,
id: c.id + currChapterId,
start: c.start + currStartTime,
end: c.end + currStartTime,
}))
this.chapters = this.chapters.concat(chapters)
currChapterId += file.chapters?.length ?? 0
currStartTime += file.duration
}
})
} else if (includedAudioFiles.length > 1) {
// Build chapters from audio files
this.chapters = []