mirror of
https://github.com/gotson/komga.git
synced 2026-04-14 02:50:50 +02:00
fix: strip accents from series sort title in metadata providers
Closes: #1199
This commit is contained in:
parent
974bf30749
commit
e568dd0bbc
6 changed files with 11 additions and 9 deletions
|
|
@ -2,7 +2,6 @@ package org.gotson.komga.domain.service
|
|||
|
||||
import mu.KotlinLogging
|
||||
import net.greypanther.natsort.CaseInsensitiveSimpleNaturalComparator
|
||||
import org.apache.commons.lang3.StringUtils
|
||||
import org.gotson.komga.application.events.EventPublisher
|
||||
import org.gotson.komga.application.tasks.TaskEmitter
|
||||
import org.gotson.komga.domain.model.Book
|
||||
|
|
@ -150,7 +149,7 @@ class SeriesLifecycle(
|
|||
seriesMetadataRepository.insert(
|
||||
SeriesMetadata(
|
||||
title = series.name,
|
||||
titleSort = StringUtils.stripAccents(series.name),
|
||||
titleSort = series.name.stripAccents(),
|
||||
seriesId = series.id,
|
||||
),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ import org.gotson.komga.infrastructure.metadata.BookMetadataProvider
|
|||
import org.gotson.komga.infrastructure.metadata.SeriesMetadataFromBookProvider
|
||||
import org.gotson.komga.infrastructure.metadata.comicrack.dto.ComicInfo
|
||||
import org.gotson.komga.infrastructure.metadata.comicrack.dto.Manga
|
||||
import org.gotson.komga.language.stripAccents
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.stereotype.Service
|
||||
import java.net.URI
|
||||
|
|
@ -131,7 +132,7 @@ class ComicInfoProvider(
|
|||
|
||||
return SeriesMetadataPatch(
|
||||
title = series,
|
||||
titleSort = series,
|
||||
titleSort = series?.stripAccents(),
|
||||
status = null,
|
||||
summary = null,
|
||||
readingDirection = readingDirection,
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import org.gotson.komga.domain.model.SeriesMetadataPatch
|
|||
import org.gotson.komga.infrastructure.mediacontainer.EpubExtractor
|
||||
import org.gotson.komga.infrastructure.metadata.BookMetadataProvider
|
||||
import org.gotson.komga.infrastructure.metadata.SeriesMetadataFromBookProvider
|
||||
import org.gotson.komga.language.stripAccents
|
||||
import org.jsoup.Jsoup
|
||||
import org.jsoup.parser.Parser
|
||||
import org.jsoup.safety.Safelist
|
||||
|
|
@ -107,7 +108,7 @@ class EpubMetadataProvider(
|
|||
|
||||
return SeriesMetadataPatch(
|
||||
title = series,
|
||||
titleSort = series,
|
||||
titleSort = series?.stripAccents(),
|
||||
status = null,
|
||||
readingDirection = direction,
|
||||
publisher = publisher,
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import org.gotson.komga.domain.model.Sidecar
|
|||
import org.gotson.komga.infrastructure.metadata.SeriesMetadataProvider
|
||||
import org.gotson.komga.infrastructure.metadata.mylar.dto.Status
|
||||
import org.gotson.komga.infrastructure.sidecar.SidecarSeriesConsumer
|
||||
import org.gotson.komga.language.stripAccents
|
||||
import org.springframework.stereotype.Service
|
||||
import kotlin.io.path.notExists
|
||||
import org.gotson.komga.infrastructure.metadata.mylar.dto.Series as MylarSeries
|
||||
|
|
@ -43,7 +44,7 @@ class MylarSeriesProvider(
|
|||
|
||||
return SeriesMetadataPatch(
|
||||
title = title,
|
||||
titleSort = title,
|
||||
titleSort = title.stripAccents(),
|
||||
status = when (metadata.status) {
|
||||
Status.Ended -> SeriesMetadata.Status.ENDED
|
||||
Status.Continuing -> SeriesMetadata.Status.ONGOING
|
||||
|
|
|
|||
|
|
@ -343,7 +343,7 @@ class ComicInfoProviderTest {
|
|||
@Test
|
||||
fun `given comicInfo when getting series metadata then metadata patch is valid`() {
|
||||
val comicInfo = ComicInfo().apply {
|
||||
series = "series"
|
||||
series = "séries"
|
||||
seriesGroup = "multiple,collections"
|
||||
publisher = "publisher"
|
||||
ageRating = AgeRating.MA_15
|
||||
|
|
@ -358,7 +358,7 @@ class ComicInfoProviderTest {
|
|||
val patch = comicInfoProvider.getSeriesMetadataFromBook(BookWithMedia(book, media), library)!!
|
||||
|
||||
with(patch) {
|
||||
assertThat(title).isEqualTo("series")
|
||||
assertThat(title).isEqualTo("séries")
|
||||
assertThat(titleSort).isEqualTo("series")
|
||||
assertThat(status).isNull()
|
||||
assertThat(collections).containsExactlyInAnyOrder("collections", "multiple")
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ class MylarSeriesProviderTest {
|
|||
type = "comicSeries",
|
||||
publisher = "DC",
|
||||
imprint = "Vertigo",
|
||||
name = "Sandman",
|
||||
name = "Sàndman",
|
||||
comicid = "12345",
|
||||
year = 1990,
|
||||
descriptionText = "Sandman comics",
|
||||
|
|
@ -57,7 +57,7 @@ class MylarSeriesProviderTest {
|
|||
val patch = mylarSeriesProvider.getSeriesMetadata(series)!!
|
||||
|
||||
with(patch) {
|
||||
assertThat(title).isEqualTo("Sandman")
|
||||
assertThat(title).isEqualTo("Sàndman")
|
||||
assertThat(titleSort).isEqualTo("Sandman")
|
||||
assertThat(status).isEqualTo(SeriesMetadata.Status.ENDED)
|
||||
assertThat(summary).isEqualTo("Sandman comics formatted")
|
||||
|
|
|
|||
Loading…
Reference in a new issue