diff --git a/server/controllers/LibraryController.js b/server/controllers/LibraryController.js index 55ef45690..2b4005060 100644 --- a/server/controllers/LibraryController.js +++ b/server/controllers/LibraryController.js @@ -617,6 +617,7 @@ class LibraryController { filterBy: req.query.filter, mediaType: req.library.mediaType, minified: req.query.minified === '1', + expanded: req.query.expanded === '1', collapseseries: req.query.collapseseries === '1', include: include.join(',') } diff --git a/server/models/LibraryItem.js b/server/models/LibraryItem.js index 16a521615..7c2548555 100644 --- a/server/models/LibraryItem.js +++ b/server/models/LibraryItem.js @@ -293,12 +293,19 @@ class LibraryItem extends Model { */ static async getByFilterAndSort(library, user, options) { let start = Date.now() + const { expanded } = options const { libraryItems, count } = await libraryFilters.getFilteredLibraryItems(library.id, user, options) Logger.debug(`Loaded ${libraryItems.length} of ${count} items for libary page in ${((Date.now() - start) / 1000).toFixed(2)}s`) return { libraryItems: libraryItems.map((li) => { - const oldLibraryItem = li.toOldJSONMinified() + let oldLibraryItem = {} + if (expanded) { + oldLibraryItem = li.toOldJSONExpanded() + } else { + oldLibraryItem = li.toOldJSONMinified() + } + if (li.collapsedSeries) { oldLibraryItem.collapsedSeries = li.collapsedSeries } @@ -306,7 +313,11 @@ class LibraryItem extends Model { oldLibraryItem.media.metadata.series = li.series } if (li.rssFeed) { - oldLibraryItem.rssFeed = li.rssFeed.toOldJSONMinified() + if (expanded) { + oldLibraryItem.rssFeed = li.rssFeed.toOldJSONExpanded() + } else { + oldLibraryItem.rssFeed = li.rssFeed.toOldJSONMinified() + } } if (li.media.numEpisodes) { oldLibraryItem.media.numEpisodes = li.media.numEpisodes