diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/comicinfo/ComicInfoProvider.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/comicinfo/ComicInfoProvider.kt index cbd1f5efe..0085ad5a7 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/comicinfo/ComicInfoProvider.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/comicinfo/ComicInfoProvider.kt @@ -76,10 +76,13 @@ class ComicInfoProvider( } val genres = comicInfo.genre?.split(',')?.mapNotNull { it.trim().ifBlank { null } } + val series = comicInfo.series?.ifBlank { null }?.let { series -> + series + (comicInfo.volume?.let { " ($it)" } ?: "") + } return SeriesMetadataPatch( - title = comicInfo.series?.ifBlank { null }, - titleSort = comicInfo.series?.ifBlank { null }, + title = series, + titleSort = series, status = null, summary = null, readingDirection = readingDirection, diff --git a/komga/src/test/kotlin/org/gotson/komga/infrastructure/metadata/comicinfo/ComicInfoProviderTest.kt b/komga/src/test/kotlin/org/gotson/komga/infrastructure/metadata/comicinfo/ComicInfoProviderTest.kt index 7a064ea56..f735a271c 100644 --- a/komga/src/test/kotlin/org/gotson/komga/infrastructure/metadata/comicinfo/ComicInfoProviderTest.kt +++ b/komga/src/test/kotlin/org/gotson/komga/infrastructure/metadata/comicinfo/ComicInfoProviderTest.kt @@ -213,6 +213,22 @@ class ComicInfoProviderTest { } } + @Test + fun `given comicInfo with volume when getting series metadata then metadata patch is valid`() { + val comicInfo = ComicInfo().apply { + series = "series" + volume = 2020 + } + + every { mockMapper.readValue(any(), ComicInfo::class.java) } returns comicInfo + + val patch = comicInfoProvider.getSeriesMetadataFromBook(book, media)!! + + with(patch) { + assertThat(title).isEqualTo("series (2020)") + } + } + @Test fun `given comicInfo with incorrect values when getting series metadata then metadata patch is valid`() { val comicInfo = ComicInfo().apply {