feat: import Translator from ComicInfo.xml

closes #740
This commit is contained in:
Gauthier Roebroeck 2021-12-14 18:06:23 +08:00
parent fabba667ec
commit fe8c21d1ad
5 changed files with 14 additions and 6 deletions

View file

@ -53,6 +53,7 @@ class ComicInfoProvider(
comicInfo.letterer?.splitWithRole("letterer")?.let { authors += it } comicInfo.letterer?.splitWithRole("letterer")?.let { authors += it }
comicInfo.coverArtist?.splitWithRole("cover")?.let { authors += it } comicInfo.coverArtist?.splitWithRole("cover")?.let { authors += it }
comicInfo.editor?.splitWithRole("editor")?.let { authors += it } comicInfo.editor?.splitWithRole("editor")?.let { authors += it }
comicInfo.translator?.splitWithRole("translator")?.let { authors += it }
val readLists = mutableListOf<BookMetadataPatch.ReadListEntry>() val readLists = mutableListOf<BookMetadataPatch.ReadListEntry>()
if (!comicInfo.alternateSeries.isNullOrBlank()) { if (!comicInfo.alternateSeries.isNullOrBlank()) {

View file

@ -67,6 +67,9 @@ class ComicInfo {
@JsonProperty(value = "Editor") @JsonProperty(value = "Editor")
var editor: String? = null var editor: String? = null
@JsonProperty(value = "Translator")
var translator: String? = null
@JsonProperty(value = "Publisher") @JsonProperty(value = "Publisher")
var publisher: String? = null var publisher: String? = null

View file

@ -261,6 +261,7 @@ class ComicInfoProviderTest {
inker = "inker" inker = "inker"
colorist = "colorist" colorist = "colorist"
editor = "editor" editor = "editor"
translator = "translator"
letterer = "letterer" letterer = "letterer"
coverArtist = "coverArtist" coverArtist = "coverArtist"
} }
@ -270,9 +271,9 @@ class ComicInfoProviderTest {
val patch = comicInfoProvider.getBookMetadataFromBook(BookWithMedia(book, media)) val patch = comicInfoProvider.getBookMetadataFromBook(BookWithMedia(book, media))
with(patch!!) { with(patch!!) {
assertThat(authors).hasSize(7) assertThat(authors).hasSize(8)
assertThat(authors?.map { it.name }).containsExactlyInAnyOrder("writer", "penciller", "inker", "colorist", "editor", "letterer", "coverArtist") 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", "cover") assertThat(authors?.map { it.role }).containsExactlyInAnyOrder("writer", "penciller", "inker", "colorist", "editor", "letterer", "translator", "cover")
} }
} }
@ -284,6 +285,7 @@ class ComicInfoProviderTest {
inker = "inker, inker2" inker = "inker, inker2"
colorist = "colorist, colorist2" colorist = "colorist, colorist2"
editor = "editor, editor2" editor = "editor, editor2"
translator = "translator, translator2"
letterer = "letterer, letterer2" letterer = "letterer, letterer2"
coverArtist = "coverArtist, coverArtist2" coverArtist = "coverArtist, coverArtist2"
} }
@ -293,9 +295,9 @@ class ComicInfoProviderTest {
val patch = comicInfoProvider.getBookMetadataFromBook(BookWithMedia(book, media)) val patch = comicInfoProvider.getBookMetadataFromBook(BookWithMedia(book, media))
with(patch!!) { with(patch!!) {
assertThat(authors).hasSize(14) assertThat(authors).hasSize(16)
assertThat(authors?.map { it.name }).containsExactlyInAnyOrder("writer", "penciller", "inker", "colorist", "editor", "letterer", "coverArtist", "writer2", "penciller2", "inker2", "colorist2", "editor2", "letterer2", "coverArtist2") 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") assertThat(authors?.map { it.role }?.distinct()).containsExactlyInAnyOrder("writer", "penciller", "inker", "colorist", "editor", "letterer", "cover", "translator")
} }
} }

View file

@ -32,6 +32,7 @@ class ComicInfoTest {
assertThat(blackAndWhite).isEqualTo(YesNo.NO) assertThat(blackAndWhite).isEqualTo(YesNo.NO)
assertThat(manga).isEqualTo(Manga.NO) assertThat(manga).isEqualTo(Manga.NO)
assertThat(seriesGroup).isEqualTo("Sandman") assertThat(seriesGroup).isEqualTo("Sandman")
assertThat(translator).isEqualTo("The translator")
} }
} }

View file

@ -21,6 +21,7 @@
 Collects THE SANDMAN #1-8.</Summary>  Collects THE SANDMAN #1-8.</Summary>
<Notes>Scraped metadata from Comixology [CMXDB727888], [RELDATE:2018-10-30]</Notes> <Notes>Scraped metadata from Comixology [CMXDB727888], [RELDATE:2018-10-30]</Notes>
<Translator>The translator</Translator>
<Publisher>DC</Publisher> <Publisher>DC</Publisher>
<Imprint>Vertigo</Imprint> <Imprint>Vertigo</Imprint>
<Count>10</Count> <Count>10</Count>