mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-02-19 00:18:56 +01:00
Merge pull request #3078 from nichwall/time_parsing_fix
Time parsing fix
This commit is contained in:
commit
38fa4d4169
@ -63,7 +63,7 @@ function cleanOverdriveMediaMarkers(overdriveMediaMarkers) {
|
|||||||
function objectValuesArrayToString(arrayOfObjects) {
|
function objectValuesArrayToString(arrayOfObjects) {
|
||||||
Logger.debug('[parseOverdriveMediaMarkers] Converting Marker object values from arrays to strings')
|
Logger.debug('[parseOverdriveMediaMarkers] Converting Marker object values from arrays to strings')
|
||||||
arrayOfObjects.forEach((item) => {
|
arrayOfObjects.forEach((item) => {
|
||||||
Object.keys(item).forEach(key => {
|
Object.keys(item).forEach((key) => {
|
||||||
item[key] = item[key].toString()
|
item[key] = item[key].toString()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -78,7 +78,7 @@ function removeExtraChapters(parsedOverdriveMediaMarkers) {
|
|||||||
const weirdChapterFilterRegex = /([(]\d|[cC]ontinued)/
|
const weirdChapterFilterRegex = /([(]\d|[cC]ontinued)/
|
||||||
var cleaned = []
|
var cleaned = []
|
||||||
parsedOverdriveMediaMarkers.forEach(function (item) {
|
parsedOverdriveMediaMarkers.forEach(function (item) {
|
||||||
cleaned.push(item.filter(chapter => !weirdChapterFilterRegex.test(chapter.Name)))
|
cleaned.push(item.filter((chapter) => !weirdChapterFilterRegex.test(chapter.Name)))
|
||||||
})
|
})
|
||||||
|
|
||||||
return cleaned
|
return cleaned
|
||||||
@ -113,8 +113,17 @@ function generateParsedChapters(includedAudioFiles, cleanedOverdriveMediaMarkers
|
|||||||
// TODO: can we guarantee the inner array matches the included audio files?
|
// TODO: can we guarantee the inner array matches the included audio files?
|
||||||
includedAudioFiles.forEach((track, track_index) => {
|
includedAudioFiles.forEach((track, track_index) => {
|
||||||
cleanedOverdriveMediaMarkers[track_index].forEach((chapter) => {
|
cleanedOverdriveMediaMarkers[track_index].forEach((chapter) => {
|
||||||
time = chapter.Time.split(":")
|
let timeParts = chapter.Time.split(':')
|
||||||
time = length + parseFloat(time[0]) * 60 + parseFloat(time[1])
|
// add seconds
|
||||||
|
time = length + parseFloat(timeParts.pop())
|
||||||
|
if (timeParts.length) {
|
||||||
|
// add minutes
|
||||||
|
time += parseFloat(timeParts.pop()) * 60
|
||||||
|
}
|
||||||
|
if (timeParts.length) {
|
||||||
|
// add hours
|
||||||
|
time += parseFloat(timeParts.pop()) * 3600
|
||||||
|
}
|
||||||
var newChapterData = {
|
var newChapterData = {
|
||||||
id: index++,
|
id: index++,
|
||||||
start: time,
|
start: time,
|
||||||
@ -131,7 +140,7 @@ function generateParsedChapters(includedAudioFiles, cleanedOverdriveMediaMarkers
|
|||||||
}
|
}
|
||||||
|
|
||||||
module.exports.parseOverdriveMediaMarkersAsChapters = (includedAudioFiles) => {
|
module.exports.parseOverdriveMediaMarkersAsChapters = (includedAudioFiles) => {
|
||||||
const overdriveMediaMarkers = includedAudioFiles.map((af) => af.metaTags.tagOverdriveMediaMarker).filter(af => af) || []
|
const overdriveMediaMarkers = includedAudioFiles.map((af) => af.metaTags.tagOverdriveMediaMarker).filter((af) => af) || []
|
||||||
if (!overdriveMediaMarkers.length) return null
|
if (!overdriveMediaMarkers.length) return null
|
||||||
|
|
||||||
var cleanedOverdriveMediaMarkers = cleanOverdriveMediaMarkers(overdriveMediaMarkers)
|
var cleanedOverdriveMediaMarkers = cleanOverdriveMediaMarkers(overdriveMediaMarkers)
|
||||||
|
Loading…
Reference in New Issue
Block a user