mirror of
https://github.com/gotson/komga.git
synced 2025-12-21 07:56:57 +01:00
parent
c8b522d7e9
commit
159c767929
7 changed files with 48 additions and 0 deletions
|
|
@ -37,5 +37,6 @@ interface ReadListRepository {
|
|||
fun delete(readListId: String)
|
||||
|
||||
fun deleteAll()
|
||||
fun deleteEmpty()
|
||||
fun existsByName(name: String): Boolean
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,5 +37,6 @@ interface SeriesCollectionRepository {
|
|||
fun delete(collectionId: String)
|
||||
|
||||
fun deleteAll()
|
||||
fun deleteEmpty()
|
||||
fun existsByName(name: String): Boolean
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,10 @@ import org.gotson.komga.domain.model.Library
|
|||
import org.gotson.komga.domain.model.Media
|
||||
import org.gotson.komga.domain.persistence.BookRepository
|
||||
import org.gotson.komga.domain.persistence.MediaRepository
|
||||
import org.gotson.komga.domain.persistence.ReadListRepository
|
||||
import org.gotson.komga.domain.persistence.SeriesCollectionRepository
|
||||
import org.gotson.komga.domain.persistence.SeriesRepository
|
||||
import org.gotson.komga.infrastructure.configuration.KomgaProperties
|
||||
import org.springframework.stereotype.Service
|
||||
import java.nio.file.Paths
|
||||
import java.time.temporal.ChronoUnit
|
||||
|
|
@ -22,6 +25,9 @@ class LibraryContentLifecycle(
|
|||
private val bookLifecycle: BookLifecycle,
|
||||
private val mediaRepository: MediaRepository,
|
||||
private val seriesLifecycle: SeriesLifecycle,
|
||||
private val collectionRepository: SeriesCollectionRepository,
|
||||
private val readListRepository: ReadListRepository,
|
||||
private val komgaProperties: KomgaProperties,
|
||||
private val taskReceiver: TaskReceiver,
|
||||
) {
|
||||
|
||||
|
|
@ -116,6 +122,16 @@ class LibraryContentLifecycle(
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (komgaProperties.deleteEmptyCollections) {
|
||||
logger.info { "Deleting empty collections" }
|
||||
collectionRepository.deleteEmpty()
|
||||
}
|
||||
|
||||
if (komgaProperties.deleteEmptyReadLists) {
|
||||
logger.info { "Deleting empty read lists" }
|
||||
readListRepository.deleteEmpty()
|
||||
}
|
||||
}.also { logger.info { "Library updated in $it" } }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,10 @@ class KomgaProperties {
|
|||
|
||||
var librariesScanDirectoryExclusions: List<String> = emptyList()
|
||||
|
||||
var deleteEmptyReadLists: Boolean = true
|
||||
|
||||
var deleteEmptyCollections: Boolean = true
|
||||
|
||||
var rememberMe = RememberMe()
|
||||
|
||||
var nativeWebp: Boolean = true
|
||||
|
|
|
|||
|
|
@ -209,6 +209,18 @@ class ReadListDao(
|
|||
}
|
||||
}
|
||||
|
||||
override fun deleteEmpty() {
|
||||
dsl.deleteFrom(rl)
|
||||
.where(
|
||||
rl.ID.`in`(
|
||||
dsl.select(rl.ID)
|
||||
.from(rl)
|
||||
.leftJoin(rlb).on(rl.ID.eq(rlb.READLIST_ID))
|
||||
.where(rlb.READLIST_ID.isNull)
|
||||
)
|
||||
).execute()
|
||||
}
|
||||
|
||||
override fun existsByName(name: String): Boolean =
|
||||
dsl.fetchExists(
|
||||
dsl.selectFrom(rl)
|
||||
|
|
|
|||
|
|
@ -209,6 +209,18 @@ class SeriesCollectionDao(
|
|||
}
|
||||
}
|
||||
|
||||
override fun deleteEmpty() {
|
||||
dsl.deleteFrom(c)
|
||||
.where(
|
||||
c.ID.`in`(
|
||||
dsl.select(c.ID)
|
||||
.from(c)
|
||||
.leftJoin(cs).on(c.ID.eq(cs.COLLECTION_ID))
|
||||
.where(cs.COLLECTION_ID.isNull)
|
||||
)
|
||||
).execute()
|
||||
}
|
||||
|
||||
override fun existsByName(name: String): Boolean =
|
||||
dsl.fetchExists(
|
||||
dsl.selectFrom(c)
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ komga:
|
|||
file: ":memory:"
|
||||
cors.allowed-origins:
|
||||
- http://localhost:8081
|
||||
# delete-empty-collections: true
|
||||
# delete-empty-read-lists: true
|
||||
spring:
|
||||
artemis:
|
||||
embedded:
|
||||
|
|
|
|||
Loading…
Reference in a new issue