From c25b9cf5f91e8cca404c53fbc2f481264b60dcaa Mon Sep 17 00:00:00 2001 From: Gauthier Roebroeck Date: Wed, 23 Jun 2021 09:13:32 +0800 Subject: [PATCH] fix(epub): parse multiple dc:subjects for series genre --- .../infrastructure/metadata/epub/EpubMetadataProvider.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/epub/EpubMetadataProvider.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/epub/EpubMetadataProvider.kt index 2c617f3c8..7d3106cb9 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/epub/EpubMetadataProvider.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/epub/EpubMetadataProvider.kt @@ -95,7 +95,9 @@ class EpubMetadataProvider( )?.text()?.ifBlank { null } val publisher = opf.selectFirst("metadata > dc|publisher")?.text()?.ifBlank { null } val language = opf.selectFirst("metadata > dc|language")?.text()?.ifBlank { null } - val genre = opf.selectFirst("metadata > dc|subject")?.text()?.ifBlank { null } + val genres = opf.select("metadata > dc|subject") + ?.mapNotNull { it.text() } + ?.toSet() val direction = opf.getElementsByTag("spine").first().attr("page-progression-direction")?.let { when (it) { @@ -114,7 +116,7 @@ class EpubMetadataProvider( ageRating = null, summary = null, language = if (language != null && BCP47TagValidator.isValid(language)) language else null, - genres = genre?.let { setOf(genre) }, + genres = genres, collections = emptyList() ) }