diff --git a/komga/src/main/kotlin/org/gotson/komga/domain/service/LibraryScanner.kt b/komga/src/main/kotlin/org/gotson/komga/domain/service/LibraryScanner.kt index fc6fca7bc..7367fc1b3 100644 --- a/komga/src/main/kotlin/org/gotson/komga/domain/service/LibraryScanner.kt +++ b/komga/src/main/kotlin/org/gotson/komga/domain/service/LibraryScanner.kt @@ -58,6 +58,7 @@ class LibraryScanner( seriesLifecycle.sortBooks(createdSeries) } else { // if series already exists, update it + logger.debug { "Scanned series already exists. Scanned: $newSeries, Existing: $existingSeries" } if (newSeries.fileLastModified.truncatedTo(ChronoUnit.MILLIS) != existingSeries.fileLastModified.truncatedTo(ChronoUnit.MILLIS)) { logger.info { "Series changed on disk, updating: $existingSeries" } @@ -65,10 +66,13 @@ class LibraryScanner( // update list of books with existing entities if they exist val existingBooks = bookRepository.findBySeriesId(existingSeries.id) + logger.debug { "Existing books: $existingBooks" } // update existing books newBooks.forEach { newBook -> + logger.debug { "Trying to match scanned book by url: $newBook" } existingBooks.find { it.url == newBook.url }?.let { existingBook -> + logger.debug { "Matched existing book: $existingBook" } if (newBook.fileLastModified.truncatedTo(ChronoUnit.MILLIS) != existingBook.fileLastModified.truncatedTo(ChronoUnit.MILLIS)) { logger.info { "Book changed on disk, update and reset media status: $existingBook" } val updatedBook = existingBook.copy( @@ -87,11 +91,15 @@ class LibraryScanner( val newBooksUrls = newBooks.map { it.url } existingBooks .filterNot { existingBook -> newBooksUrls.contains(existingBook.url) } - .let { books -> bookLifecycle.deleteMany(books.map { it.id }) } + .let { books -> + logger.info { "Deleting books not on disk anymore: $books" } + bookLifecycle.deleteMany(books.map { it.id }) + } // add new books val existingBooksUrls = existingBooks.map { it.url } val booksToAdd = newBooks.filterNot { newBook -> existingBooksUrls.contains(newBook.url) } + logger.info { "Adding new books: $booksToAdd" } seriesLifecycle.addBooks(existingSeries, booksToAdd) // sort all books diff --git a/komga/src/main/kotlin/org/gotson/komga/domain/service/SeriesLifecycle.kt b/komga/src/main/kotlin/org/gotson/komga/domain/service/SeriesLifecycle.kt index acd33e1dd..0e8d439aa 100644 --- a/komga/src/main/kotlin/org/gotson/komga/domain/service/SeriesLifecycle.kt +++ b/komga/src/main/kotlin/org/gotson/komga/domain/service/SeriesLifecycle.kt @@ -38,12 +38,17 @@ class SeriesLifecycle( ) { fun sortBooks(series: Series) { + logger.debug { "Sorting books for $series" } + val books = bookRepository.findBySeriesId(series.id) val metadatas = bookMetadataRepository.findByIds(books.map { it.id }) + logger.debug { "Existing books: $books" } + logger.debug { "Existing metadata: $metadatas" } val sorted = books .sortedWith(compareBy(natSortComparator) { it.name }) .map { book -> book to metadatas.first { it.bookId == book.id } } + logger.debug { "Sorted books: $sorted" } bookRepository.updateMany( sorted.mapIndexed { index, (book, _) -> book.copy(number = index + 1) }