mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-06-24 17:59:06 +02:00
Music albums grouping and page
This commit is contained in:
parent
9de7be1cb4
commit
d6da161b13
11 changed files with 210 additions and 18 deletions
|
@ -492,6 +492,32 @@ class LibraryController {
|
|||
res.json(payload)
|
||||
}
|
||||
|
||||
// api/libraries/:id/albums
|
||||
async getAlbumsForLibrary(req, res) {
|
||||
if (!req.library.isMusic) {
|
||||
return res.status(400).send('Invalid library media type')
|
||||
}
|
||||
|
||||
let libraryItems = this.db.libraryItems.filter(li => li.libraryId === req.library.id)
|
||||
let albums = libraryHelpers.groupMusicLibraryItemsIntoAlbums(libraryItems)
|
||||
albums = naturalSort(albums).asc(a => a.title) // Alphabetical by album title
|
||||
|
||||
const payload = {
|
||||
results: [],
|
||||
total: albums.length,
|
||||
limit: req.query.limit && !isNaN(req.query.limit) ? Number(req.query.limit) : 0,
|
||||
page: req.query.page && !isNaN(req.query.page) ? Number(req.query.page) : 0
|
||||
}
|
||||
|
||||
if (payload.limit) {
|
||||
const startIndex = payload.page * payload.limit
|
||||
albums = albums.slice(startIndex, startIndex + payload.limit)
|
||||
}
|
||||
|
||||
payload.results = albums
|
||||
res.json(payload)
|
||||
}
|
||||
|
||||
async getLibraryFilterData(req, res) {
|
||||
res.json(libraryHelpers.getDistinctFilterDataNew(req.libraryItems))
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue