From 668ae488c9da7e21bacd4cf4960ca27387575126 Mon Sep 17 00:00:00 2001 From: r0adkll Date: Thu, 6 Feb 2025 13:14:58 -0500 Subject: [PATCH 1/2] Adding support for 'minified' parameter when fetching a library's items --- server/models/LibraryItem.js | 39 +++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/server/models/LibraryItem.js b/server/models/LibraryItem.js index 3ed4e31e..3572c7b9 100644 --- a/server/models/LibraryItem.js +++ b/server/models/LibraryItem.js @@ -286,11 +286,13 @@ class LibraryItem extends Model { */ static async getByFilterAndSort(library, user, options) { let start = Date.now() + const { minified } = 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) => { + let items = [] + if (minified) { + items = libraryItems.map((li) => { const oldLibraryItem = li.toOldJSONMinified() if (li.collapsedSeries) { oldLibraryItem.collapsedSeries = li.collapsedSeries @@ -315,7 +317,38 @@ class LibraryItem extends Model { } return oldLibraryItem - }), + }) + } else { + items = libraryItems.map((li) => { + const oldLibraryItem = li.toOldJSONExpanded() + if (li.collapsedSeries) { + oldLibraryItem.collapsedSeries = li.collapsedSeries + } + if (li.series) { + oldLibraryItem.media.metadata.series = li.series + } + if (li.rssFeed) { + oldLibraryItem.rssFeed = li.rssFeed.toOldJSON() + } + if (li.media.numEpisodes) { + oldLibraryItem.media.numEpisodes = li.media.numEpisodes + } + if (li.size && !oldLibraryItem.media.size) { + oldLibraryItem.media.size = li.size + } + if (li.numEpisodesIncomplete) { + oldLibraryItem.numEpisodesIncomplete = li.numEpisodesIncomplete + } + if (li.mediaItemShare) { + oldLibraryItem.mediaItemShare = li.mediaItemShare + } + + return oldLibraryItem + }) + } + + return { + libraryItems: items, count } } From 0996d97cf21c8110820f2c38e91067a46dbe84a7 Mon Sep 17 00:00:00 2001 From: r0adkll Date: Thu, 6 Feb 2025 13:27:05 -0500 Subject: [PATCH 2/2] Made fix less verbose --- server/models/LibraryItem.js | 94 ++++++++++++++---------------------- 1 file changed, 36 insertions(+), 58 deletions(-) diff --git a/server/models/LibraryItem.js b/server/models/LibraryItem.js index 3572c7b9..a8978bb1 100644 --- a/server/models/LibraryItem.js +++ b/server/models/LibraryItem.js @@ -290,65 +290,43 @@ class LibraryItem extends Model { 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`) - let items = [] - if (minified) { - items = libraryItems.map((li) => { - const oldLibraryItem = li.toOldJSONMinified() - if (li.collapsedSeries) { - oldLibraryItem.collapsedSeries = li.collapsedSeries - } - if (li.series) { - oldLibraryItem.media.metadata.series = li.series - } - if (li.rssFeed) { - oldLibraryItem.rssFeed = li.rssFeed.toOldJSONMinified() - } - if (li.media.numEpisodes) { - oldLibraryItem.media.numEpisodes = li.media.numEpisodes - } - if (li.size && !oldLibraryItem.media.size) { - oldLibraryItem.media.size = li.size - } - if (li.numEpisodesIncomplete) { - oldLibraryItem.numEpisodesIncomplete = li.numEpisodesIncomplete - } - if (li.mediaItemShare) { - oldLibraryItem.mediaItemShare = li.mediaItemShare - } - - return oldLibraryItem - }) - } else { - items = libraryItems.map((li) => { - const oldLibraryItem = li.toOldJSONExpanded() - if (li.collapsedSeries) { - oldLibraryItem.collapsedSeries = li.collapsedSeries - } - if (li.series) { - oldLibraryItem.media.metadata.series = li.series - } - if (li.rssFeed) { - oldLibraryItem.rssFeed = li.rssFeed.toOldJSON() - } - if (li.media.numEpisodes) { - oldLibraryItem.media.numEpisodes = li.media.numEpisodes - } - if (li.size && !oldLibraryItem.media.size) { - oldLibraryItem.media.size = li.size - } - if (li.numEpisodesIncomplete) { - oldLibraryItem.numEpisodesIncomplete = li.numEpisodesIncomplete - } - if (li.mediaItemShare) { - oldLibraryItem.mediaItemShare = li.mediaItemShare - } - - return oldLibraryItem - }) - } - return { - libraryItems: items, + libraryItems: libraryItems.map((li) => { + let oldLibraryItem = {} + if (minified) { + oldLibraryItem = li.toOldJSONMinified() + } else { + oldLibraryItem = li.toOldJSONExpanded() + } + + if (li.collapsedSeries) { + oldLibraryItem.collapsedSeries = li.collapsedSeries + } + if (li.series) { + oldLibraryItem.media.metadata.series = li.series + } + if (li.rssFeed) { + if (minified) { + oldLibraryItem.rssFeed = li.rssFeed.toOldJSONMinified() + } else { + oldLibraryItem.rssFeed = li.rssFeed.toOldJSON() + } + } + if (li.media.numEpisodes) { + oldLibraryItem.media.numEpisodes = li.media.numEpisodes + } + if (li.size && !oldLibraryItem.media.size) { + oldLibraryItem.media.size = li.size + } + if (li.numEpisodesIncomplete) { + oldLibraryItem.numEpisodesIncomplete = li.numEpisodesIncomplete + } + if (li.mediaItemShare) { + oldLibraryItem.mediaItemShare = li.mediaItemShare + } + + return oldLibraryItem + }), count } }