diff --git a/server/providers/FantLab.js b/server/providers/FantLab.js index f33934ca2..dd9f60cc8 100644 --- a/server/providers/FantLab.js +++ b/server/providers/FantLab.js @@ -52,7 +52,9 @@ class FantLab { return [] }) - return Promise.all(items.map(async (item) => await this.getWork(item, timeout))).then((resArray) => resArray.filter(Boolean)) + return Promise.all(items.map(async (item) => await this.getWork(item, timeout))).then((resArray) => { + return resArray.filter((res) => res) + }) } /** @@ -81,10 +83,6 @@ class FantLab { return null }) - if (!bookData) { - return null - } - return this.cleanBookData(bookData, timeout) } diff --git a/server/utils/queries/libraryItemsBookFilters.js b/server/utils/queries/libraryItemsBookFilters.js index 7fa5eb41c..73d36c584 100644 --- a/server/utils/queries/libraryItemsBookFilters.js +++ b/server/utils/queries/libraryItemsBookFilters.js @@ -251,15 +251,6 @@ module.exports = { */ getOrder(sortBy, sortDesc, collapseseries) { const dir = sortDesc ? 'DESC' : 'ASC' - - const getTitleOrder = () => { - if (global.ServerSettings.sortingIgnorePrefix) { - return [Sequelize.literal('`libraryItem`.`titleIgnorePrefix` COLLATE NOCASE'), dir] - } else { - return [Sequelize.literal('`libraryItem`.`title` COLLATE NOCASE'), dir] - } - } - if (sortBy === 'addedAt') { return [[Sequelize.literal('libraryItem.createdAt'), dir]] } else if (sortBy === 'size') { @@ -273,16 +264,25 @@ module.exports = { } else if (sortBy === 'media.metadata.publishedYear') { return [[Sequelize.literal(`CAST(\`book\`.\`publishedYear\` AS INTEGER)`), dir]] } else if (sortBy === 'media.metadata.authorNameLF') { - // Sort by author name last first, secondary sort by title - return [[Sequelize.literal('`libraryItem`.`authorNamesLastFirst` COLLATE NOCASE'), dir], getTitleOrder()] + return [ + [Sequelize.literal('`libraryItem`.`authorNamesLastFirst` COLLATE NOCASE'), dir], + [Sequelize.literal('`libraryItem`.`title` COLLATE NOCASE'), dir] + ] } else if (sortBy === 'media.metadata.authorName') { - // Sort by author name first last, secondary sort by title - return [[Sequelize.literal('`libraryItem`.`authorNamesFirstLast` COLLATE NOCASE'), dir], getTitleOrder()] + return [ + [Sequelize.literal('`libraryItem`.`authorNamesFirstLast` COLLATE NOCASE'), dir], + [Sequelize.literal('`libraryItem`.`title` COLLATE NOCASE'), dir] + ] } else if (sortBy === 'media.metadata.title') { if (collapseseries) { return [[Sequelize.literal('display_title COLLATE NOCASE'), dir]] } - return [getTitleOrder()] + + if (global.ServerSettings.sortingIgnorePrefix) { + return [[Sequelize.literal('`libraryItem`.`titleIgnorePrefix` COLLATE NOCASE'), dir]] + } else { + return [[Sequelize.literal('`libraryItem`.`title` COLLATE NOCASE'), dir]] + } } else if (sortBy === 'sequence') { const nullDir = sortDesc ? 'DESC NULLS FIRST' : 'ASC NULLS LAST' return [[Sequelize.literal(`CAST(\`series.bookSeries.sequence\` AS FLOAT) ${nullDir}`)]]