mirror of
https://github.com/Suwayomi/Tachidesk.git
synced 2025-12-10 06:42:07 +01:00
Exclude mangas with specific state from global update (#537)
This commit is contained in:
@@ -18,7 +18,9 @@ import suwayomi.tachidesk.manga.model.dataclass.IncludeInUpdate
|
||||
import suwayomi.tachidesk.manga.model.dataclass.MangaChapterDataClass
|
||||
import suwayomi.tachidesk.manga.model.dataclass.MangaDataClass
|
||||
import suwayomi.tachidesk.manga.model.dataclass.PaginatedList
|
||||
import suwayomi.tachidesk.manga.model.table.MangaStatus
|
||||
import suwayomi.tachidesk.server.JavalinSetup.future
|
||||
import suwayomi.tachidesk.server.serverConfig
|
||||
import suwayomi.tachidesk.server.util.formParam
|
||||
import suwayomi.tachidesk.server.util.handler
|
||||
import suwayomi.tachidesk.server.util.pathParam
|
||||
@@ -108,8 +110,13 @@ object UpdateController {
|
||||
.distinctBy { it.id }
|
||||
val mangasToCategoriesMap = CategoryManga.getMangasCategories(categoriesToUpdateMangas.map { it.id })
|
||||
val mangasToUpdate = categoriesToUpdateMangas
|
||||
.asSequence()
|
||||
.filter { it.updateStrategy == UpdateStrategy.ALWAYS_UPDATE }
|
||||
.filter { if (serverConfig.excludeUnreadChapters) { (it.unreadCount ?: 0L) == 0L } else true }
|
||||
.filter { if (serverConfig.excludeNotStarted) { it.lastReadAt != null } else true }
|
||||
.filter { if (serverConfig.excludeCompleted) { it.status != MangaStatus.COMPLETED.name } else true }
|
||||
.filter { !excludedCategories.any { category -> mangasToCategoriesMap[it.id]?.contains(category) == true } }
|
||||
.toList()
|
||||
|
||||
// In case no manga gets updated and no update job was running before, the client would never receive an info about its update request
|
||||
if (mangasToUpdate.isEmpty()) {
|
||||
|
||||
@@ -35,6 +35,9 @@ class ServerConfig(getConfig: () -> Config, moduleName: String = MODULE_NAME) :
|
||||
|
||||
// updater
|
||||
var maxParallelUpdateRequests: Int by overridableConfig
|
||||
var excludeUnreadChapters: Boolean by overridableConfig
|
||||
var excludeNotStarted: Boolean by overridableConfig
|
||||
var excludeCompleted: Boolean by overridableConfig
|
||||
|
||||
// Authentication
|
||||
var basicAuthEnabled: Boolean by overridableConfig
|
||||
|
||||
@@ -20,6 +20,9 @@ server.downloadsPath = ""
|
||||
|
||||
# updater
|
||||
server.maxParallelUpdateRequests = 10 # sets how many sources can be updated in parallel. updates are grouped by source and all mangas of a source are updated synchronously
|
||||
server.excludeUnreadChapters = true
|
||||
server.excludeNotStarted = true
|
||||
server.excludeCompleted = true
|
||||
|
||||
# Authentication
|
||||
server.basicAuthEnabled = false
|
||||
|
||||
@@ -12,6 +12,9 @@ server.downloadAsCbz = false
|
||||
|
||||
# updater
|
||||
server.maxParallelUpdateRequests = 10
|
||||
server.excludeUnreadChapters = true
|
||||
server.excludeNotStarted = true
|
||||
server.excludeCompleted = true
|
||||
|
||||
# misc
|
||||
server.debugLogsEnabled = true
|
||||
|
||||
Reference in New Issue
Block a user