mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	Merge pull request #1456 from jramer/master
Fixes m4b chapters only taken from first file.
This commit is contained in:
		
						commit
						ba5ad228cc
					
				| @ -420,10 +420,38 @@ 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 && 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 = includedAudioFiles[0].chapters.map(c => ({ ...c })) |       if ( | ||||||
|  |         includedAudioFiles.length === 1 || | ||||||
|  |         includedAudioFiles.length > 1 && | ||||||
|  |         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) => { | ||||||
|  |           if (file.duration) { | ||||||
|  |             const 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) { |     } 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