Add collapse series, add filter by series include sequence and sort, show number of episodes on podcast card

This commit is contained in:
advplyr 2022-04-09 19:44:46 -05:00
parent 2a386ca2a9
commit 174dac8fd4
7 changed files with 80 additions and 15 deletions

View file

@ -262,4 +262,33 @@ module.exports = {
})
return totalSize
},
collapseBookSeries(libraryItems) {
var seriesObjects = this.getSeriesFromBooks(libraryItems, true)
var seriesToUse = {}
var libraryItemIdsToHide = []
seriesObjects.forEach((series) => {
series.firstBook = series.books.find(b => !seriesToUse[b.id]) // Find first book not already used
if (series.firstBook) {
seriesToUse[series.firstBook.id] = series
libraryItemIdsToHide = libraryItemIdsToHide.concat(series.books.filter(b => !seriesToUse[b.id]).map(b => b.id))
}
})
return libraryItems.map((li) => {
if (li.mediaType != 'book') return
var libraryItemJson = li.toJSONMinified()
if (libraryItemIdsToHide.includes(li.id)) {
return null
}
if (seriesToUse[li.id]) {
libraryItemJson.collapsedSeries = {
id: seriesToUse[li.id].id,
name: seriesToUse[li.id].name,
numBooks: seriesToUse[li.id].books.length
}
}
return libraryItemJson
}).filter(li => li)
}
}