From fe8c21d1ad6fc3ee552bdc17a4cd60397ec3d827 Mon Sep 17 00:00:00 2001 From: Gauthier Roebroeck Date: Tue, 14 Dec 2021 18:06:23 +0800 Subject: [PATCH] feat: import Translator from ComicInfo.xml closes #740 --- .../metadata/comicrack/ComicInfoProvider.kt | 1 + .../metadata/comicrack/dto/ComicInfo.kt | 3 +++ .../metadata/comicrack/ComicInfoProviderTest.kt | 14 ++++++++------ .../metadata/comicrack/dto/ComicInfoTest.kt | 1 + komga/src/test/resources/comicrack/ComicInfo.xml | 1 + 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/ComicInfoProvider.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/ComicInfoProvider.kt index 1fa6183ba..85683f2e6 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/ComicInfoProvider.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/ComicInfoProvider.kt @@ -53,6 +53,7 @@ class ComicInfoProvider( comicInfo.letterer?.splitWithRole("letterer")?.let { authors += it } comicInfo.coverArtist?.splitWithRole("cover")?.let { authors += it } comicInfo.editor?.splitWithRole("editor")?.let { authors += it } + comicInfo.translator?.splitWithRole("translator")?.let { authors += it } val readLists = mutableListOf() if (!comicInfo.alternateSeries.isNullOrBlank()) { diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/dto/ComicInfo.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/dto/ComicInfo.kt index 46aa6313c..722812378 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/dto/ComicInfo.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/dto/ComicInfo.kt @@ -67,6 +67,9 @@ class ComicInfo { @JsonProperty(value = "Editor") var editor: String? = null + @JsonProperty(value = "Translator") + var translator: String? = null + @JsonProperty(value = "Publisher") var publisher: String? = null diff --git a/komga/src/test/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/ComicInfoProviderTest.kt b/komga/src/test/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/ComicInfoProviderTest.kt index 6b949c703..2614c6ef3 100644 --- a/komga/src/test/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/ComicInfoProviderTest.kt +++ b/komga/src/test/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/ComicInfoProviderTest.kt @@ -261,6 +261,7 @@ class ComicInfoProviderTest { inker = "inker" colorist = "colorist" editor = "editor" + translator = "translator" letterer = "letterer" coverArtist = "coverArtist" } @@ -270,9 +271,9 @@ class ComicInfoProviderTest { val patch = comicInfoProvider.getBookMetadataFromBook(BookWithMedia(book, media)) with(patch!!) { - assertThat(authors).hasSize(7) - assertThat(authors?.map { it.name }).containsExactlyInAnyOrder("writer", "penciller", "inker", "colorist", "editor", "letterer", "coverArtist") - assertThat(authors?.map { it.role }).containsExactlyInAnyOrder("writer", "penciller", "inker", "colorist", "editor", "letterer", "cover") + assertThat(authors).hasSize(8) + assertThat(authors?.map { it.name }).containsExactlyInAnyOrder("writer", "penciller", "inker", "colorist", "editor", "letterer", "translator", "coverArtist") + assertThat(authors?.map { it.role }).containsExactlyInAnyOrder("writer", "penciller", "inker", "colorist", "editor", "letterer", "translator", "cover") } } @@ -284,6 +285,7 @@ class ComicInfoProviderTest { inker = "inker, inker2" colorist = "colorist, colorist2" editor = "editor, editor2" + translator = "translator, translator2" letterer = "letterer, letterer2" coverArtist = "coverArtist, coverArtist2" } @@ -293,9 +295,9 @@ class ComicInfoProviderTest { val patch = comicInfoProvider.getBookMetadataFromBook(BookWithMedia(book, media)) with(patch!!) { - assertThat(authors).hasSize(14) - assertThat(authors?.map { it.name }).containsExactlyInAnyOrder("writer", "penciller", "inker", "colorist", "editor", "letterer", "coverArtist", "writer2", "penciller2", "inker2", "colorist2", "editor2", "letterer2", "coverArtist2") - assertThat(authors?.map { it.role }?.distinct()).containsExactlyInAnyOrder("writer", "penciller", "inker", "colorist", "editor", "letterer", "cover") + assertThat(authors).hasSize(16) + assertThat(authors?.map { it.name }).containsExactlyInAnyOrder("writer", "penciller", "inker", "colorist", "editor", "letterer", "coverArtist", "writer2", "penciller2", "inker2", "colorist2", "editor2", "letterer2", "coverArtist2", "translator", "translator2") + assertThat(authors?.map { it.role }?.distinct()).containsExactlyInAnyOrder("writer", "penciller", "inker", "colorist", "editor", "letterer", "cover", "translator") } } diff --git a/komga/src/test/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/dto/ComicInfoTest.kt b/komga/src/test/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/dto/ComicInfoTest.kt index a603babc2..05d8b60ac 100644 --- a/komga/src/test/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/dto/ComicInfoTest.kt +++ b/komga/src/test/kotlin/org/gotson/komga/infrastructure/metadata/comicrack/dto/ComicInfoTest.kt @@ -32,6 +32,7 @@ class ComicInfoTest { assertThat(blackAndWhite).isEqualTo(YesNo.NO) assertThat(manga).isEqualTo(Manga.NO) assertThat(seriesGroup).isEqualTo("Sandman") + assertThat(translator).isEqualTo("The translator") } } diff --git a/komga/src/test/resources/comicrack/ComicInfo.xml b/komga/src/test/resources/comicrack/ComicInfo.xml index cbad717b8..c99ac502f 100644 --- a/komga/src/test/resources/comicrack/ComicInfo.xml +++ b/komga/src/test/resources/comicrack/ComicInfo.xml @@ -21,6 +21,7 @@  Collects THE SANDMAN #1-8. Scraped metadata from Comixology [CMXDB727888], [RELDATE:2018-10-30] + The translator DC Vertigo 10