added backend logic

This commit is contained in:
Vito0912 2025-03-18 09:01:45 +01:00
parent dbf1f88efa
commit dd5da33a81
No known key found for this signature in database
GPG Key ID: 29A3D509FE70B237
2 changed files with 8 additions and 4 deletions

View File

@ -14,6 +14,7 @@ const Logger = require('../Logger')
* @property {string[]} metadataPrecedence
* @property {number} markAsFinishedTimeRemaining Time remaining in seconds to mark as finished. (defaults to 10s)
* @property {number} markAsFinishedPercentComplete Percent complete to mark as finished (0-100). If this is set it will be used over markAsFinishedTimeRemaining.
* @property {boolean} listenAgainOrdered Order listen again items by progress or random
*/
class Library extends Model {
@ -61,7 +62,8 @@ class Library extends Model {
autoScanCronExpression: null,
podcastSearchRegion: 'us',
markAsFinishedPercentComplete: null,
markAsFinishedTimeRemaining: 10
markAsFinishedTimeRemaining: 10,
listenAgainOrdered: false
}
} else {
return {
@ -76,7 +78,8 @@ class Library extends Model {
onlyShowLaterBooksInContinueSeries: false,
metadataPrecedence: this.defaultMetadataPrecedence,
markAsFinishedPercentComplete: null,
markAsFinishedTimeRemaining: 10
markAsFinishedTimeRemaining: 10,
listenAgainOrdered: false
}
}
}

View File

@ -163,8 +163,9 @@ module.exports = {
* @returns {Promise<{ items:oldLibraryItem[], count:number }>}
*/
async getMediaFinished(library, user, include, limit) {
const sortBy = library.settings.listenAgainOrdered ? 'progress' : 'random'
if (library.isBook) {
const { libraryItems, count } = await libraryItemsBookFilters.getFilteredLibraryItems(library.id, user, 'progress', 'finished', 'random', true, false, include, limit, 0)
const { libraryItems, count } = await libraryItemsBookFilters.getFilteredLibraryItems(library.id, user, 'progress', 'finished', sortBy, true, false, include, limit, 0)
return {
items: libraryItems.map((li) => {
const oldLibraryItem = li.toOldJSONMinified()
@ -179,7 +180,7 @@ module.exports = {
count
}
} else {
const { libraryItems, count } = await libraryItemsPodcastFilters.getFilteredPodcastEpisodes(library.id, user, 'progress', 'finished', 'random', true, limit, 0)
const { libraryItems, count } = await libraryItemsPodcastFilters.getFilteredPodcastEpisodes(library.id, user, 'progress', 'finished', sortBy, true, limit, 0)
return {
count,
items: libraryItems.map((li) => {