mirror of
https://github.com/gotson/komga.git
synced 2025-12-20 07:23:34 +01:00
parent
c3914a9290
commit
45d4421cd6
6 changed files with 13 additions and 11 deletions
|
|
@ -9,7 +9,7 @@ import java.net.URL
|
|||
|
||||
interface BookRepository {
|
||||
fun findByIdOrNull(bookId: String): Book?
|
||||
fun findByLibraryIdAndUrlOrNull(libraryId: String, url: URL): Book?
|
||||
fun findNotDeletedByLibraryIdAndUrlOrNull(libraryId: String, url: URL): Book?
|
||||
|
||||
fun findAll(): Collection<Book>
|
||||
fun findAllBySeriesId(seriesId: String): Collection<Book>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import java.net.URL
|
|||
|
||||
interface SeriesRepository {
|
||||
fun findByIdOrNull(seriesId: String): Series?
|
||||
fun findByLibraryIdAndUrlOrNull(libraryId: String, url: URL): Series?
|
||||
fun findNotDeletedByLibraryIdAndUrlOrNull(libraryId: String, url: URL): Series?
|
||||
|
||||
fun findAll(): Collection<Series>
|
||||
fun findAllByLibraryId(libraryId: String): Collection<Series>
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ class LibraryContentLifecycle(
|
|||
val seriesUrlWithDeletedBooks = seriesToSortAndRefresh.map { it.url }
|
||||
|
||||
scannedSeries.forEach { (newSeries, newBooks) ->
|
||||
val existingSeries = seriesRepository.findByLibraryIdAndUrlOrNull(library.id, newSeries.url)
|
||||
val existingSeries = seriesRepository.findNotDeletedByLibraryIdAndUrlOrNull(library.id, newSeries.url)
|
||||
|
||||
// if series does not exist, save it
|
||||
if (existingSeries == null) {
|
||||
|
|
@ -186,7 +186,7 @@ class LibraryContentLifecycle(
|
|||
if (existingSidecar == null || existingSidecar.lastModifiedTime.notEquals(newSidecar.lastModifiedTime)) {
|
||||
when (newSidecar.source) {
|
||||
Sidecar.Source.SERIES ->
|
||||
seriesRepository.findByLibraryIdAndUrlOrNull(library.id, newSidecar.parentUrl)?.let { series ->
|
||||
seriesRepository.findNotDeletedByLibraryIdAndUrlOrNull(library.id, newSidecar.parentUrl)?.let { series ->
|
||||
logger.info { "Sidecar changed on disk (${newSidecar.url}, refresh Series for ${newSidecar.type}: $series" }
|
||||
when (newSidecar.type) {
|
||||
Sidecar.Type.ARTWORK -> taskReceiver.refreshSeriesLocalArtwork(series.id)
|
||||
|
|
@ -194,7 +194,7 @@ class LibraryContentLifecycle(
|
|||
}
|
||||
}
|
||||
Sidecar.Source.BOOK ->
|
||||
bookRepository.findByLibraryIdAndUrlOrNull(library.id, newSidecar.parentUrl)?.let { book ->
|
||||
bookRepository.findNotDeletedByLibraryIdAndUrlOrNull(library.id, newSidecar.parentUrl)?.let { book ->
|
||||
logger.info { "Sidecar changed on disk (${newSidecar.url}, refresh Book for ${newSidecar.type}: $book" }
|
||||
when (newSidecar.type) {
|
||||
Sidecar.Type.ARTWORK -> taskReceiver.refreshBookLocalArtwork(book.id)
|
||||
|
|
|
|||
|
|
@ -39,9 +39,10 @@ class BookDao(
|
|||
override fun findByIdOrNull(bookId: String): Book? =
|
||||
findByIdOrNull(dsl, bookId)
|
||||
|
||||
override fun findByLibraryIdAndUrlOrNull(libraryId: String, url: URL): Book? =
|
||||
override fun findNotDeletedByLibraryIdAndUrlOrNull(libraryId: String, url: URL): Book? =
|
||||
dsl.selectFrom(b)
|
||||
.where(b.LIBRARY_ID.eq(libraryId).and(b.URL.eq(url.toString())))
|
||||
.and(b.DELETED_DATE.isNull)
|
||||
.fetchOneInto(b)
|
||||
?.toDomain()
|
||||
|
||||
|
|
|
|||
|
|
@ -64,9 +64,10 @@ class SeriesDao(
|
|||
.map { it.toDomain() }
|
||||
}
|
||||
|
||||
override fun findByLibraryIdAndUrlOrNull(libraryId: String, url: URL): Series? =
|
||||
override fun findNotDeletedByLibraryIdAndUrlOrNull(libraryId: String, url: URL): Series? =
|
||||
dsl.selectFrom(s)
|
||||
.where(s.LIBRARY_ID.eq(libraryId).and(s.URL.eq(url.toString())))
|
||||
.and(s.DELETED_DATE.isNull)
|
||||
.fetchOneInto(s)
|
||||
?.toDomain()
|
||||
|
||||
|
|
|
|||
|
|
@ -288,10 +288,10 @@ class SeriesDaoTest(
|
|||
)
|
||||
seriesDao.insert(series)
|
||||
|
||||
val found = seriesDao.findByLibraryIdAndUrlOrNull(library.id, URL("file://series"))
|
||||
val notFound1 = seriesDao.findByLibraryIdAndUrlOrNull(library.id, URL("file://series2"))
|
||||
val notFound2 = seriesDao.findByLibraryIdAndUrlOrNull(library.id + 1, URL("file://series"))
|
||||
val notFound3 = seriesDao.findByLibraryIdAndUrlOrNull(library.id + 1, URL("file://series2"))
|
||||
val found = seriesDao.findNotDeletedByLibraryIdAndUrlOrNull(library.id, URL("file://series"))
|
||||
val notFound1 = seriesDao.findNotDeletedByLibraryIdAndUrlOrNull(library.id, URL("file://series2"))
|
||||
val notFound2 = seriesDao.findNotDeletedByLibraryIdAndUrlOrNull(library.id + 1, URL("file://series"))
|
||||
val notFound3 = seriesDao.findNotDeletedByLibraryIdAndUrlOrNull(library.id + 1, URL("file://series2"))
|
||||
|
||||
assertThat(found).isNotNull
|
||||
assertThat(found?.name).isEqualTo("Series")
|
||||
|
|
|
|||
Loading…
Reference in a new issue