mirror of
https://github.com/gotson/komga.git
synced 2026-04-14 02:50:50 +02:00
fix: keep user uploaded thumbnail when importing a book with upgrade
This commit is contained in:
parent
812f82207a
commit
b7b74c8b50
2 changed files with 18 additions and 0 deletions
|
|
@ -11,6 +11,7 @@ import org.gotson.komga.domain.model.Media
|
|||
import org.gotson.komga.domain.model.PathContainedInPath
|
||||
import org.gotson.komga.domain.model.Series
|
||||
import org.gotson.komga.domain.model.Sidecar
|
||||
import org.gotson.komga.domain.model.ThumbnailBook
|
||||
import org.gotson.komga.domain.model.withCode
|
||||
import org.gotson.komga.domain.persistence.BookMetadataRepository
|
||||
import org.gotson.komga.domain.persistence.BookRepository
|
||||
|
|
@ -20,6 +21,7 @@ import org.gotson.komga.domain.persistence.MediaRepository
|
|||
import org.gotson.komga.domain.persistence.ReadListRepository
|
||||
import org.gotson.komga.domain.persistence.ReadProgressRepository
|
||||
import org.gotson.komga.domain.persistence.SidecarRepository
|
||||
import org.gotson.komga.domain.persistence.ThumbnailBookRepository
|
||||
import org.gotson.komga.language.toIndexedMap
|
||||
import org.springframework.context.ApplicationEventPublisher
|
||||
import org.springframework.stereotype.Service
|
||||
|
|
@ -52,6 +54,7 @@ class BookImporter(
|
|||
private val bookRepository: BookRepository,
|
||||
private val mediaRepository: MediaRepository,
|
||||
private val metadataRepository: BookMetadataRepository,
|
||||
private val thumbnailBookRepository: ThumbnailBookRepository,
|
||||
private val readProgressRepository: ReadProgressRepository,
|
||||
private val readListRepository: ReadListRepository,
|
||||
private val libraryRepository: LibraryRepository,
|
||||
|
|
@ -191,6 +194,11 @@ class BookImporter(
|
|||
metadataRepository.update(it.copy(bookId = importedBook.id))
|
||||
}
|
||||
|
||||
// copy user uploaded thumbnails
|
||||
thumbnailBookRepository.findAllByBookIdAndType(bookToUpgrade.id, setOf(ThumbnailBook.Type.USER_UPLOADED)).forEach { deleted ->
|
||||
thumbnailBookRepository.update(deleted.copy(bookId = importedBook.id))
|
||||
}
|
||||
|
||||
// copy read progress
|
||||
readProgressRepository.findAllByBookId(bookToUpgrade.id)
|
||||
.map { it.copy(bookId = importedBook.id) }
|
||||
|
|
|
|||
|
|
@ -13,10 +13,13 @@ import org.gotson.komga.application.tasks.TaskEmitter
|
|||
import org.gotson.komga.domain.model.Book
|
||||
import org.gotson.komga.domain.model.BookPage
|
||||
import org.gotson.komga.domain.model.CopyMode
|
||||
import org.gotson.komga.domain.model.Dimension
|
||||
import org.gotson.komga.domain.model.KomgaUser
|
||||
import org.gotson.komga.domain.model.MarkSelectedPreference
|
||||
import org.gotson.komga.domain.model.Media
|
||||
import org.gotson.komga.domain.model.PathContainedInPath
|
||||
import org.gotson.komga.domain.model.ReadList
|
||||
import org.gotson.komga.domain.model.ThumbnailBook
|
||||
import org.gotson.komga.domain.model.makeBook
|
||||
import org.gotson.komga.domain.model.makeLibrary
|
||||
import org.gotson.komga.domain.model.makeSeries
|
||||
|
|
@ -372,6 +375,8 @@ class BookImporterTest(
|
|||
)
|
||||
}
|
||||
|
||||
bookLifecycle.addThumbnailForBook(ThumbnailBook(ByteArray(10), type = ThumbnailBook.Type.USER_UPLOADED, mediaType = "image/jpeg", fileSize = 10L, dimension = Dimension(1, 1), bookId = bookToUpgrade.id), MarkSelectedPreference.YES)
|
||||
|
||||
// when
|
||||
bookImporter.importBook(sourceFile, series, CopyMode.MOVE, upgradeBookId = bookToUpgrade.id)
|
||||
|
||||
|
|
@ -395,6 +400,11 @@ class BookImporterTest(
|
|||
assertThat(numberSortLock).isTrue
|
||||
}
|
||||
|
||||
val thumbnail = bookLifecycle.getThumbnail(books[2].id)
|
||||
assertThat(thumbnail).isNotNull
|
||||
assertThat(thumbnail!!.type).isEqualTo(ThumbnailBook.Type.USER_UPLOADED)
|
||||
assertThat(thumbnail.fileSize).isEqualTo(10L)
|
||||
|
||||
assertThat(sourceFile).doesNotExist()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue