Update audio file scanner to support multiple series in series/series-part tags separated by semicolon if they match #4136

This commit is contained in:
advplyr 2025-03-21 17:53:17 -05:00
parent 89d0257a76
commit 84f99370ee

View File

@ -308,6 +308,27 @@ class AudioFileScanner {
bookMetadata.series = series
}
} else {
// Detect if multiple series are in the series & series-part tags.
// Note: This requires that every series has a sequence and that they are separated by a semicolon.
if (value.includes(';') && audioFileMetaTags.tagSeriesPart?.includes(';')) {
const seriesSplit = value
.split(';')
.map((s) => s.trim())
.filter(Boolean)
const seriesSequenceSplit = audioFileMetaTags.tagSeriesPart
.split(';')
.map((s) => s.trim())
.filter(Boolean)
if (seriesSplit.length > 1 && seriesSplit.length === seriesSequenceSplit.length) {
bookMetadata.series = seriesSplit.map((series, index) => ({
name: series,
sequence: seriesSequenceSplit[index] || null
}))
libraryScan.addLog(LogLevel.DEBUG, `Detected multiple series in series/series-part tags: ${bookMetadata.series.map((s) => `${s.name} #${s.sequence}`).join(', ')}`)
return
}
}
// Original embed used "series" and "series-part" tags
bookMetadata.series = [
{