mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-30 18:12:25 -04:00 
			
		
		
		
	Parse out mediamarkers from all files
This commit updates the logic in generateChaptersFromOverdriveMediaMarkers to create a single array of objects that holds all of the clean MediaMarker data. it still needs to be conveted to the NewChapters format. I should also rename this function to "cleanChaptersFromOMM", but I"ll do that later
This commit is contained in:
		
							parent
							
								
									27e6b9ce0d
								
							
						
					
					
						commit
						430fbf5e46
					
				| @ -437,6 +437,7 @@ export default { | |||||||
|             title: chap.title |             title: chap.title | ||||||
|           } |           } | ||||||
|         }) |         }) | ||||||
|  |       console.log(`newChapters - ${JSON.stringify(this.newChapters)}`) | ||||||
|       this.showFindChaptersModal = false |       this.showFindChaptersModal = false | ||||||
|       this.chapterData = null |       this.chapterData = null | ||||||
|     }, |     }, | ||||||
| @ -469,33 +470,68 @@ export default { | |||||||
|     }, |     }, | ||||||
|     // overdrive |     // overdrive | ||||||
|     generateChaptersFromOverdriveMediaMarkers() { |     generateChaptersFromOverdriveMediaMarkers() { | ||||||
|       var parseString = require('xml2js').parseString; |       var parseString = require('xml2js').parseString; // function to convert xml to JSON | ||||||
|       var xml = this.overdriveMediaMarkers[0] |       var overdriveMediaMarkers = this.overdriveMediaMarkers // an array of XML. 1 Part.mp3 to 1 array index. Each index holds 1 XML that holds multiple chapters | ||||||
|       var parsedXML = {} |       //console.log(overdriveMediaMarkers) | ||||||
|       parseString(xml, function (err, result) { |  | ||||||
|           parsedXML = result |  | ||||||
|       }); |  | ||||||
|        |        | ||||||
|       var index = 0 |       var parsedOverdriveMediaMarkers = [] // an array of objects. each object being a chapter with a name and time key. the values are arrays of strings | ||||||
|       var newOChapters = parsedXML.Markers.Marker.map((marker) => { | 
 | ||||||
|         return { |       overdriveMediaMarkers.forEach(function (item, index) {      | ||||||
|           id: index++, |         var parsed_result | ||||||
|           start: marker.Time[0], |         var holder | ||||||
|           end: 0, |         parseString(item, function (err, result) { | ||||||
|           title: marker.Name[0] |           // result.Markers.Marker is the result of parsing the XML for the MediaMarker tags for the MP3 file (Part##.mp3) | ||||||
|         } |           // it is shaped like this: | ||||||
|  |           // [ | ||||||
|  |           //   { | ||||||
|  |           //     "Name": [ | ||||||
|  |           //       "Chapter 1:  " | ||||||
|  |           //     ], | ||||||
|  |           //     "Time": [ | ||||||
|  |           //       "0:00.000" | ||||||
|  |           //     ] | ||||||
|  |           //   }, | ||||||
|  |           //   { | ||||||
|  |           //     "Name": [ | ||||||
|  |           //       "Chapter 2: " | ||||||
|  |           //     ], | ||||||
|  |           //     "Time": [ | ||||||
|  |           //       "15:51.000" | ||||||
|  |           //     ] | ||||||
|  |           //   } | ||||||
|  |           // ] | ||||||
|  | 
 | ||||||
|  |           parsed_result = result.Markers.Marker | ||||||
|  |            | ||||||
|  |           // The values for Name and Time in parsed results are returned as Arrays | ||||||
|  |           // update them to be strings | ||||||
|  |           parsed_result.forEach((item, index) => { | ||||||
|  |             Object.keys(item).forEach(key => { | ||||||
|  |               item[key] = item[key].toString() | ||||||
|  |             }) | ||||||
|  |           }) | ||||||
|  |         }) | ||||||
|  | 
 | ||||||
|  |         parsedOverdriveMediaMarkers.push(parsed_result) | ||||||
|       }) |       }) | ||||||
|       console.log(newOChapters) | 
 | ||||||
|       //console.log(this.overdriveMediaMarkers[0]) |       console.log(parsedOverdriveMediaMarkers.flat()) | ||||||
|       // console.log(JSON.stringify(x)) | 
 | ||||||
|       //console.log(parseString(this.overdriveMediaMarkers[0])) |       // go from an array of arrays of objects to an array of objects | ||||||
|       // { |       parsedOverdriveMediaMarkers = parsedOverdriveMediaMarkers.flat() | ||||||
|       //   id:, | 
 | ||||||
|       //   start: |       // var index = 0 | ||||||
|       //   end: |       // var newOChapters = parsedXML.Markers.Marker.map((marker) => { | ||||||
|       //   title: |       //   return { | ||||||
|       // } |       //     id: index++, | ||||||
|       this.overdriveMediaMarkers |       //     start: marker.Time[0], | ||||||
|  |       //     end: 0, | ||||||
|  |       //     title: marker.Name[0] | ||||||
|  |       //   } | ||||||
|  |       // }) | ||||||
|  |       // console.log(newOChapters) | ||||||
|  | 
 | ||||||
|  |       // this.overdriveMediaMarkers | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   mounted() { |   mounted() { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user