refactor: move language utils

This commit is contained in:
Gauthier Roebroeck 2022-02-24 17:51:31 +08:00
parent b0d6314ec9
commit ee68ea6451
21 changed files with 29 additions and 22 deletions

View file

@ -1,5 +1,6 @@
package org.gotson.komga.domain.model
import org.gotson.komga.language.lowerNotBlank
import java.time.LocalDate
import java.time.LocalDateTime
@ -33,7 +34,7 @@ class BookMetadata(
val title = title.trim()
val summary = summary.trim()
val number = number.trim()
val tags = tags.map { it.lowercase().trim() }.filter { it.isNotBlank() }.toSet()
val tags = tags.lowerNotBlank().toSet()
fun copy(
title: String = this.title,

View file

@ -20,7 +20,7 @@ import org.gotson.komga.domain.persistence.BookRepository
import org.gotson.komga.domain.persistence.HistoricalEventRepository
import org.gotson.komga.domain.persistence.LibraryRepository
import org.gotson.komga.domain.persistence.MediaRepository
import org.gotson.komga.infrastructure.language.notEquals
import org.gotson.komga.language.notEquals
import org.springframework.stereotype.Service
import org.springframework.transaction.support.TransactionTemplate
import java.io.FileNotFoundException

View file

@ -21,7 +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.infrastructure.language.toIndexedMap
import org.gotson.komga.language.toIndexedMap
import org.springframework.stereotype.Service
import java.io.FileNotFoundException
import java.nio.file.FileAlreadyExistsException

View file

@ -22,7 +22,7 @@ import org.gotson.komga.domain.persistence.HistoricalEventRepository
import org.gotson.komga.domain.persistence.LibraryRepository
import org.gotson.komga.domain.persistence.MediaRepository
import org.gotson.komga.domain.persistence.PageHashRepository
import org.gotson.komga.infrastructure.language.notEquals
import org.gotson.komga.language.notEquals
import org.springframework.stereotype.Service
import org.springframework.transaction.support.TransactionTemplate
import java.io.FileNotFoundException

View file

@ -27,8 +27,8 @@ import org.gotson.komga.domain.persistence.SidecarRepository
import org.gotson.komga.domain.persistence.ThumbnailBookRepository
import org.gotson.komga.infrastructure.configuration.KomgaProperties
import org.gotson.komga.infrastructure.hash.Hasher
import org.gotson.komga.infrastructure.language.notEquals
import org.gotson.komga.infrastructure.language.toIndexedMap
import org.gotson.komga.language.notEquals
import org.gotson.komga.language.toIndexedMap
import org.springframework.stereotype.Service
import org.springframework.transaction.support.TransactionTemplate
import java.nio.file.Paths

View file

@ -9,7 +9,7 @@ import org.gotson.komga.domain.persistence.BookMetadataRepository
import org.gotson.komga.domain.persistence.BookRepository
import org.gotson.komga.domain.persistence.ReadListRepository
import org.gotson.komga.domain.persistence.SeriesRepository
import org.gotson.komga.infrastructure.language.toIndexedMap
import org.gotson.komga.language.toIndexedMap
import org.springframework.stereotype.Service
private val logger = KotlinLogging.logger {}

View file

@ -30,7 +30,7 @@ import org.gotson.komga.domain.persistence.SeriesCollectionRepository
import org.gotson.komga.domain.persistence.SeriesMetadataRepository
import org.gotson.komga.domain.persistence.SeriesRepository
import org.gotson.komga.domain.persistence.ThumbnailSeriesRepository
import org.gotson.komga.infrastructure.language.stripAccents
import org.gotson.komga.language.stripAccents
import org.springframework.stereotype.Service
import org.springframework.transaction.support.TransactionTemplate
import java.io.File

View file

@ -14,12 +14,12 @@ import org.gotson.komga.domain.persistence.LibraryRepository
import org.gotson.komga.domain.persistence.MediaRepository
import org.gotson.komga.domain.persistence.SeriesCollectionRepository
import org.gotson.komga.domain.persistence.SeriesMetadataRepository
import org.gotson.komga.infrastructure.language.mostFrequent
import org.gotson.komga.infrastructure.metadata.SeriesMetadataFromBookProvider
import org.gotson.komga.infrastructure.metadata.SeriesMetadataProvider
import org.gotson.komga.infrastructure.metadata.comicrack.ComicInfoProvider
import org.gotson.komga.infrastructure.metadata.epub.EpubMetadataProvider
import org.gotson.komga.infrastructure.metadata.mylar.MylarSeriesProvider
import org.gotson.komga.language.mostFrequent
import org.springframework.stereotype.Service
private val logger = KotlinLogging.logger {}

View file

@ -2,7 +2,7 @@ package org.gotson.komga.infrastructure.datasource
import com.ibm.icu.text.Collator
import mu.KotlinLogging
import org.gotson.komga.infrastructure.language.stripAccents
import org.gotson.komga.language.stripAccents
import org.springframework.jdbc.datasource.SimpleDriverDataSource
import org.sqlite.Collation
import org.sqlite.Function

View file

@ -2,9 +2,9 @@ package org.gotson.komga.infrastructure.jooq
import org.gotson.komga.domain.model.ReadProgress
import org.gotson.komga.domain.persistence.ReadProgressRepository
import org.gotson.komga.infrastructure.language.toUTC
import org.gotson.komga.jooq.Tables
import org.gotson.komga.jooq.tables.records.ReadProgressRecord
import org.gotson.komga.language.toUTC
import org.jooq.DSLContext
import org.jooq.Query
import org.jooq.impl.DSL

View file

@ -3,10 +3,10 @@ package org.gotson.komga.infrastructure.jooq
import org.gotson.komga.domain.model.Author
import org.gotson.komga.domain.persistence.ReferentialRepository
import org.gotson.komga.infrastructure.datasource.SqliteUdfDataSource
import org.gotson.komga.infrastructure.language.stripAccents
import org.gotson.komga.jooq.Tables
import org.gotson.komga.jooq.tables.records.BookMetadataAggregationAuthorRecord
import org.gotson.komga.jooq.tables.records.BookMetadataAuthorRecord
import org.gotson.komga.language.stripAccents
import org.jooq.DSLContext
import org.jooq.impl.DSL.noCondition
import org.jooq.impl.DSL.select

View file

@ -7,9 +7,9 @@ import org.apache.lucene.document.StringField
import org.apache.lucene.document.TextField
import org.gotson.komga.domain.model.ReadList
import org.gotson.komga.domain.model.SeriesCollection
import org.gotson.komga.infrastructure.language.toDate
import org.gotson.komga.interfaces.api.rest.dto.BookDto
import org.gotson.komga.interfaces.api.rest.dto.SeriesDto
import org.gotson.komga.language.toDate
enum class LuceneEntity(val type: String, val id: String, val defaultFields: Array<String>) {
Book("book", "book_id", arrayOf("title", "isbn")),

View file

@ -1,6 +1,6 @@
package org.gotson.komga.infrastructure.web
import org.gotson.komga.infrastructure.language.toEnumeration
import org.gotson.komga.language.toEnumeration
import java.util.Enumeration
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletRequestWrapper

View file

@ -26,7 +26,6 @@ import org.gotson.komga.domain.persistence.ThumbnailReadListRepository
import org.gotson.komga.domain.service.BookLifecycle
import org.gotson.komga.domain.service.ReadListLifecycle
import org.gotson.komga.infrastructure.jooq.UnpagedSorted
import org.gotson.komga.infrastructure.language.toIndexedMap
import org.gotson.komga.infrastructure.mediacontainer.ContentDetector
import org.gotson.komga.infrastructure.security.KomgaPrincipal
import org.gotson.komga.infrastructure.swagger.AuthorsAsQueryParam
@ -44,6 +43,7 @@ import org.gotson.komga.interfaces.api.rest.dto.TachiyomiReadProgressUpdateDto
import org.gotson.komga.interfaces.api.rest.dto.ThumbnailReadListDto
import org.gotson.komga.interfaces.api.rest.dto.restrictUrl
import org.gotson.komga.interfaces.api.rest.dto.toDto
import org.gotson.komga.language.toIndexedMap
import org.springframework.core.io.FileSystemResource
import org.springframework.data.domain.Page
import org.springframework.data.domain.PageRequest

View file

@ -2,7 +2,7 @@ package org.gotson.komga.interfaces.api.rest.dto
import com.fasterxml.jackson.annotation.JsonFormat
import org.gotson.komga.domain.model.SeriesCollection
import org.gotson.komga.infrastructure.language.toUTC
import org.gotson.komga.language.toUTC
import java.time.LocalDateTime
data class CollectionDto(

View file

@ -2,7 +2,7 @@ package org.gotson.komga.interfaces.api.rest.dto
import com.fasterxml.jackson.annotation.JsonFormat
import org.gotson.komga.domain.model.ReadList
import org.gotson.komga.infrastructure.language.toUTC
import org.gotson.komga.language.toUTC
import java.time.LocalDateTime
data class ReadListDto(

View file

@ -1,4 +1,4 @@
package org.gotson.komga.infrastructure.language
package org.gotson.komga.language
import org.apache.commons.lang3.StringUtils
import java.time.LocalDate
@ -39,6 +39,12 @@ fun <T, R : Any> Iterable<T>.mostFrequent(transform: (T) -> R?): R? {
.maxByOrNull { it.value }?.key
}
fun Iterable<String>.lowerNotBlank() =
this.map { it.lowercase().trim() }.filter { it.isNotBlank() }
fun <T> Iterable<T>.toSetOrNull() =
this.toSet().ifEmpty { null }
fun LocalDateTime.notEquals(other: LocalDateTime, precision: TemporalUnit = ChronoUnit.MILLIS) =
this.truncatedTo(precision) != other.truncatedTo(precision)

View file

@ -27,7 +27,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.SeriesRepository
import org.gotson.komga.infrastructure.language.toIndexedMap
import org.gotson.komga.language.toIndexedMap
import org.junit.jupiter.api.AfterAll
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeAll

View file

@ -36,8 +36,8 @@ import org.gotson.komga.domain.persistence.SeriesMetadataRepository
import org.gotson.komga.domain.persistence.SeriesRepository
import org.gotson.komga.domain.persistence.ThumbnailBookRepository
import org.gotson.komga.infrastructure.hash.Hasher
import org.gotson.komga.infrastructure.language.toIndexedMap
import org.gotson.komga.interfaces.api.persistence.SeriesDtoRepository
import org.gotson.komga.language.toIndexedMap
import org.junit.jupiter.api.AfterAll
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeAll

View file

@ -8,7 +8,7 @@ import org.gotson.komga.domain.model.makeSeries
import org.gotson.komga.domain.persistence.BookRepository
import org.gotson.komga.domain.persistence.LibraryRepository
import org.gotson.komga.domain.persistence.SeriesRepository
import org.gotson.komga.infrastructure.language.toIndexedMap
import org.gotson.komga.language.toIndexedMap
import org.junit.jupiter.api.AfterAll
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeAll

View file

@ -12,7 +12,7 @@ import org.gotson.komga.domain.persistence.SeriesMetadataRepository
import org.gotson.komga.domain.service.LibraryLifecycle
import org.gotson.komga.domain.service.ReadListLifecycle
import org.gotson.komga.domain.service.SeriesLifecycle
import org.gotson.komga.infrastructure.language.toIndexedMap
import org.gotson.komga.language.toIndexedMap
import org.junit.jupiter.api.AfterAll
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeAll