mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-06-24 09:49:24 +02:00
Change:Series volume numbers to use language sensitive sorting #261
This commit is contained in:
parent
49fcaefd01
commit
ef94a6bb29
4 changed files with 45 additions and 31 deletions
|
@ -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 {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue