mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-06-30 17:34:39 -05: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.MangaChapterDataClass
|
||||||
import suwayomi.tachidesk.manga.model.dataclass.MangaDataClass
|
import suwayomi.tachidesk.manga.model.dataclass.MangaDataClass
|
||||||
import suwayomi.tachidesk.manga.model.dataclass.PaginatedList
|
import suwayomi.tachidesk.manga.model.dataclass.PaginatedList
|
||||||
|
import suwayomi.tachidesk.manga.model.table.MangaStatus
|
||||||
import suwayomi.tachidesk.server.JavalinSetup.future
|
import suwayomi.tachidesk.server.JavalinSetup.future
|
||||||
|
import suwayomi.tachidesk.server.serverConfig
|
||||||
import suwayomi.tachidesk.server.util.formParam
|
import suwayomi.tachidesk.server.util.formParam
|
||||||
import suwayomi.tachidesk.server.util.handler
|
import suwayomi.tachidesk.server.util.handler
|
||||||
import suwayomi.tachidesk.server.util.pathParam
|
import suwayomi.tachidesk.server.util.pathParam
|
||||||
@@ -108,8 +110,13 @@ object UpdateController {
|
|||||||
.distinctBy { it.id }
|
.distinctBy { it.id }
|
||||||
val mangasToCategoriesMap = CategoryManga.getMangasCategories(categoriesToUpdateMangas.map { it.id })
|
val mangasToCategoriesMap = CategoryManga.getMangasCategories(categoriesToUpdateMangas.map { it.id })
|
||||||
val mangasToUpdate = categoriesToUpdateMangas
|
val mangasToUpdate = categoriesToUpdateMangas
|
||||||
|
.asSequence()
|
||||||
.filter { it.updateStrategy == UpdateStrategy.ALWAYS_UPDATE }
|
.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 } }
|
.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
|
// 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()) {
|
if (mangasToUpdate.isEmpty()) {
|
||||||
|
|||||||
@@ -35,6 +35,9 @@ class ServerConfig(getConfig: () -> Config, moduleName: String = MODULE_NAME) :
|
|||||||
|
|
||||||
// updater
|
// updater
|
||||||
var maxParallelUpdateRequests: Int by overridableConfig
|
var maxParallelUpdateRequests: Int by overridableConfig
|
||||||
|
var excludeUnreadChapters: Boolean by overridableConfig
|
||||||
|
var excludeNotStarted: Boolean by overridableConfig
|
||||||
|
var excludeCompleted: Boolean by overridableConfig
|
||||||
|
|
||||||
// Authentication
|
// Authentication
|
||||||
var basicAuthEnabled: Boolean by overridableConfig
|
var basicAuthEnabled: Boolean by overridableConfig
|
||||||
|
|||||||
@@ -20,6 +20,9 @@ server.downloadsPath = ""
|
|||||||
|
|
||||||
# updater
|
# 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.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
|
# Authentication
|
||||||
server.basicAuthEnabled = false
|
server.basicAuthEnabled = false
|
||||||
|
|||||||
@@ -12,6 +12,9 @@ server.downloadAsCbz = false
|
|||||||
|
|
||||||
# updater
|
# updater
|
||||||
server.maxParallelUpdateRequests = 10
|
server.maxParallelUpdateRequests = 10
|
||||||
|
server.excludeUnreadChapters = true
|
||||||
|
server.excludeNotStarted = true
|
||||||
|
server.excludeCompleted = true
|
||||||
|
|
||||||
# misc
|
# misc
|
||||||
server.debugLogsEnabled = true
|
server.debugLogsEnabled = true
|
||||||
|
|||||||
Reference in New Issue
Block a user