mirror of
https://github.com/gotson/komga.git
synced 2025-12-22 00:13:30 +01:00
refactor(analyzer): sort pages in extractors instead of analyzer
This commit is contained in:
parent
b724a21256
commit
c5d9f10e92
3 changed files with 11 additions and 7 deletions
|
|
@ -1,7 +1,6 @@
|
|||
package org.gotson.komga.domain.service
|
||||
|
||||
import mu.KotlinLogging
|
||||
import net.greypanther.natsort.CaseInsensitiveSimpleNaturalComparator
|
||||
import org.gotson.komga.domain.model.Book
|
||||
import org.gotson.komga.domain.model.BookPage
|
||||
import org.gotson.komga.domain.model.Media
|
||||
|
|
@ -10,7 +9,6 @@ import org.gotson.komga.infrastructure.image.ImageConverter
|
|||
import org.gotson.komga.infrastructure.mediacontainer.ContentDetector
|
||||
import org.gotson.komga.infrastructure.mediacontainer.MediaContainerExtractor
|
||||
import org.springframework.stereotype.Service
|
||||
import java.util.*
|
||||
|
||||
private val logger = KotlinLogging.logger {}
|
||||
|
||||
|
|
@ -25,8 +23,6 @@ class BookAnalyzer(
|
|||
.flatMap { e -> e.mediaTypes().map { it to e } }
|
||||
.toMap()
|
||||
|
||||
private val natSortComparator: Comparator<String> = CaseInsensitiveSimpleNaturalComparator.getInstance()
|
||||
|
||||
private val thumbnailSize = 300
|
||||
private val thumbnailFormat = "jpeg"
|
||||
|
||||
|
|
@ -50,9 +46,7 @@ class BookAnalyzer(
|
|||
entry.mediaType?.let { contentDetector.isImage(it) } ?: false
|
||||
}.let { (images, others) ->
|
||||
Pair(
|
||||
images
|
||||
.map { BookPage(it.name, it.mediaType!!) }
|
||||
.sortedWith(compareBy(natSortComparator) { it.fileName }),
|
||||
images.map { BookPage(it.name, it.mediaType!!) },
|
||||
others
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,10 +2,12 @@ package org.gotson.komga.infrastructure.mediacontainer
|
|||
|
||||
import com.github.junrar.Archive
|
||||
import mu.KotlinLogging
|
||||
import net.greypanther.natsort.CaseInsensitiveSimpleNaturalComparator
|
||||
import org.gotson.komga.domain.model.MediaContainerEntry
|
||||
import org.springframework.stereotype.Service
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.Path
|
||||
import java.util.*
|
||||
|
||||
private val logger = KotlinLogging.logger {}
|
||||
|
||||
|
|
@ -14,6 +16,8 @@ class RarExtractor(
|
|||
private val contentDetector: ContentDetector
|
||||
) : MediaContainerExtractor {
|
||||
|
||||
private val natSortComparator: Comparator<String> = CaseInsensitiveSimpleNaturalComparator.getInstance()
|
||||
|
||||
override fun mediaTypes(): List<String> = listOf("application/x-rar-compressed")
|
||||
|
||||
override fun getEntries(path: Path): List<MediaContainerEntry> =
|
||||
|
|
@ -28,6 +32,7 @@ class RarExtractor(
|
|||
MediaContainerEntry(name = it.fileNameString, comment = e.message)
|
||||
}
|
||||
}
|
||||
.sortedWith(compareBy(natSortComparator) { it.name })
|
||||
}
|
||||
|
||||
override fun getEntryStream(path: Path, entryName: String): ByteArray =
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
package org.gotson.komga.infrastructure.mediacontainer
|
||||
|
||||
import mu.KotlinLogging
|
||||
import net.greypanther.natsort.CaseInsensitiveSimpleNaturalComparator
|
||||
import org.apache.commons.compress.archivers.zip.ZipFile
|
||||
import org.gotson.komga.domain.model.MediaContainerEntry
|
||||
import org.springframework.stereotype.Service
|
||||
import java.nio.file.Path
|
||||
import java.util.*
|
||||
|
||||
private val logger = KotlinLogging.logger {}
|
||||
|
||||
|
|
@ -13,6 +15,8 @@ class ZipExtractor(
|
|||
private val contentDetector: ContentDetector
|
||||
) : MediaContainerExtractor {
|
||||
|
||||
private val natSortComparator: Comparator<String> = CaseInsensitiveSimpleNaturalComparator.getInstance()
|
||||
|
||||
override fun mediaTypes(): List<String> = listOf("application/zip")
|
||||
|
||||
override fun getEntries(path: Path): List<MediaContainerEntry> =
|
||||
|
|
@ -27,6 +31,7 @@ class ZipExtractor(
|
|||
MediaContainerEntry(name = it.name, comment = e.message)
|
||||
}
|
||||
}
|
||||
.sortedWith(compareBy(natSortComparator) { it.name })
|
||||
}
|
||||
|
||||
override fun getEntryStream(path: Path, entryName: String): ByteArray =
|
||||
|
|
|
|||
Loading…
Reference in a new issue