mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-08-08 23:04:51 +02:00
Change:Series volume numbers to use language sensitive sorting #261
This commit is contained in:
@ -1,4 +1,7 @@
|
||||
const { sort } = require('fast-sort')
|
||||
const { sort, createNewSortInstance } = require('fast-sort')
|
||||
const naturalSort = createNewSortInstance({
|
||||
comparer: new Intl.Collator(undefined, { numeric: true, sensitivity: 'base' }).compare
|
||||
})
|
||||
|
||||
module.exports = {
|
||||
decode(text) {
|
||||
@ -92,14 +95,18 @@ module.exports = {
|
||||
}
|
||||
})
|
||||
return Object.values(_series).map((series) => {
|
||||
series.books = sort(series.books).asc(ab => {
|
||||
if (!isNaN(ab.book.volumeNumber) && ab.book.volumeNumber !== null) return Number(ab.book.volumeNumber)
|
||||
return ab.book.volumeNumber
|
||||
})
|
||||
series.books = naturalSort(series.books).asc(ab => ab.book.volumeNumber)
|
||||
return series
|
||||
})
|
||||
},
|
||||
|
||||
sortSeriesBooks(books, minified = false) {
|
||||
return naturalSort(books).asc(ab => ab.book.volumeNumber).map(ab => {
|
||||
if (minified) return ab.toJSONMinified()
|
||||
return ab.toJSONExpanded()
|
||||
})
|
||||
},
|
||||
|
||||
getBooksWithUserAudiobook(user, books) {
|
||||
return books.map(book => {
|
||||
return {
|
||||
|
Reference in New Issue
Block a user