mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-02-15 09:49:20 +01:00
use already fetched library settings, only fetch maxSequence if setting is turned on
This commit is contained in:
parent
c83399c7b5
commit
d4c1bc5dfc
@ -127,7 +127,7 @@ module.exports = {
|
|||||||
* @returns {object} { libraryItems:LibraryItem[], count:number }
|
* @returns {object} { libraryItems:LibraryItem[], count:number }
|
||||||
*/
|
*/
|
||||||
async getLibraryItemsContinueSeries(library, user, include, limit) {
|
async getLibraryItemsContinueSeries(library, user, include, limit) {
|
||||||
const { libraryItems, count } = await libraryItemsBookFilters.getContinueSeriesLibraryItems(library.id, user, include, limit, 0)
|
const { libraryItems, count } = await libraryItemsBookFilters.getContinueSeriesLibraryItems(library, user, include, limit, 0)
|
||||||
return {
|
return {
|
||||||
libraryItems: libraryItems.map(li => {
|
libraryItems: libraryItems.map(li => {
|
||||||
const oldLibraryItem = Database.libraryItemModel.getOldLibraryItem(li).toJSONMinified()
|
const oldLibraryItem = Database.libraryItemModel.getOldLibraryItem(li).toJSONMinified()
|
||||||
|
@ -640,7 +640,8 @@ module.exports = {
|
|||||||
* @param {number} offset
|
* @param {number} offset
|
||||||
* @returns {object} { libraryItems:LibraryItem[], count:number }
|
* @returns {object} { libraryItems:LibraryItem[], count:number }
|
||||||
*/
|
*/
|
||||||
async getContinueSeriesLibraryItems(libraryId, user, include, limit, offset) {
|
async getContinueSeriesLibraryItems(library, user, include, limit, offset) {
|
||||||
|
const libraryId = library.id
|
||||||
const libraryItemIncludes = []
|
const libraryItemIncludes = []
|
||||||
if (include.includes('rssfeed')) {
|
if (include.includes('rssfeed')) {
|
||||||
libraryItemIncludes.push({
|
libraryItemIncludes.push({
|
||||||
@ -654,6 +655,13 @@ module.exports = {
|
|||||||
const userPermissionBookWhere = this.getUserPermissionBookWhereQuery(user)
|
const userPermissionBookWhere = this.getUserPermissionBookWhereQuery(user)
|
||||||
bookWhere.push(...userPermissionBookWhere.bookWhere)
|
bookWhere.push(...userPermissionBookWhere.bookWhere)
|
||||||
|
|
||||||
|
let includeAttributes = [
|
||||||
|
[Sequelize.literal('(SELECT max(mp.updatedAt) FROM bookSeries bs, mediaProgresses mp WHERE mp.mediaItemId = bs.bookId AND mp.userId = :userId AND bs.seriesId = series.id)'), 'recent_progress'],
|
||||||
|
]
|
||||||
|
if (library.settings.onlyShowLaterBooksInContinueSeries) {
|
||||||
|
includeAttributes.push([Sequelize.literal('(SELECT CAST(max(bs.sequence) as FLOAT) FROM bookSeries bs, mediaProgresses mp WHERE mp.mediaItemId = bs.bookId AND mp.userId = :userId AND bs.seriesId = series.id)'), 'maxSequence'])
|
||||||
|
}
|
||||||
|
|
||||||
const { rows: series, count } = await Database.seriesModel.findAndCountAll({
|
const { rows: series, count } = await Database.seriesModel.findAndCountAll({
|
||||||
where: [
|
where: [
|
||||||
{
|
{
|
||||||
@ -675,11 +683,7 @@ module.exports = {
|
|||||||
Sequelize.where(Sequelize.literal(`(SELECT count(*) FROM mediaProgresses mp, bookSeries bs WHERE mp.mediaItemId = bs.bookId AND mp.userId = :userId AND bs.seriesId = series.id AND mp.isFinished = 0 AND mp.currentTime > 0)`), 0)
|
Sequelize.where(Sequelize.literal(`(SELECT count(*) FROM mediaProgresses mp, bookSeries bs WHERE mp.mediaItemId = bs.bookId AND mp.userId = :userId AND bs.seriesId = series.id AND mp.isFinished = 0 AND mp.currentTime > 0)`), 0)
|
||||||
],
|
],
|
||||||
attributes: {
|
attributes: {
|
||||||
include: [
|
include: includeAttributes
|
||||||
[Sequelize.literal('(SELECT max(mp.updatedAt) FROM bookSeries bs, mediaProgresses mp WHERE mp.mediaItemId = bs.bookId AND mp.userId = :userId AND bs.seriesId = series.id)'), 'recent_progress'],
|
|
||||||
[Sequelize.literal('(SELECT CAST(max(bs.sequence) as FLOAT) FROM bookSeries bs, mediaProgresses mp WHERE mp.mediaItemId = bs.bookId AND mp.userId = :userId AND bs.seriesId = series.id)'), 'maxSequence'],
|
|
||||||
[Sequelize.literal('(SELECT json_extract(libraries.settings, "$.onlyShowLaterBooksInContinueSeries") FROM libraries WHERE id = :libraryId)'), 'onlyShowLaterBooksInContinueSeries']
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
replacements: {
|
replacements: {
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
@ -737,7 +741,7 @@ module.exports = {
|
|||||||
|
|
||||||
var bookIndex = 0
|
var bookIndex = 0
|
||||||
// if the library setting is toggled, only show later entries in series, otherwise skip
|
// if the library setting is toggled, only show later entries in series, otherwise skip
|
||||||
if (s.dataValues.onlyShowLaterBooksInContinueSeries === 1) {
|
if (library.settings.onlyShowLaterBooksInContinueSeries) {
|
||||||
bookIndex = s.bookSeries.findIndex(function (b) {
|
bookIndex = s.bookSeries.findIndex(function (b) {
|
||||||
return parseFloat(b.dataValues.sequence) > s.dataValues.maxSequence
|
return parseFloat(b.dataValues.sequence) > s.dataValues.maxSequence
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user