From 46c1c6463ab98a1dd446a2b9759e73d18fa9ff5b Mon Sep 17 00:00:00 2001 From: MajorTanya <39014446+MajorTanya@users.noreply.github.com> Date: Wed, 7 Jan 2026 09:16:56 +0100 Subject: [PATCH] Add authors/artists to MAL search results (#2833) (cherry picked from commit 51b3ab3fd19bdf6a7c3bd2085104392a9c412622) # Conflicts: # CHANGELOG.md --- .../data/track/myanimelist/MyAnimeListApi.kt | 9 ++++++++- .../data/track/myanimelist/dto/MALManga.kt | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/MyAnimeListApi.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/MyAnimeListApi.kt index 5b0957068..ec4ffd79e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/MyAnimeListApi.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/MyAnimeListApi.kt @@ -254,6 +254,13 @@ class MyAnimeListApi( publishing_status = searchItem.status.replace("_", " ") publishing_type = searchItem.mediaType.replace("_", " ") start_date = searchItem.startDate ?: "" + artists = searchItem.authors + .filter { authorNode -> authorNode.role == "Art" } + .mapNotNull { authorNode -> authorNode.node.getFullName() } + authors = searchItem.authors + // count all with "Story" or "Story & Art" as authors, like is done for library entries + .filter { authorNode -> authorNode.role.contains("Story") } + .mapNotNull { authorNode -> authorNode.node.getFullName() } } } @@ -280,7 +287,7 @@ class MyAnimeListApi( private const val BASE_API_URL = "https://api.myanimelist.net/v2" private const val SEARCH_FIELDS = - "id,title,synopsis,num_chapters,mean,main_picture,status,media_type,start_date" + "id,title,synopsis,num_chapters,mean,main_picture,status,media_type,start_date,authors{first_name,last_name}" private const val LIST_PAGINATION_AMOUNT = 250 diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/dto/MALManga.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/dto/MALManga.kt index 5232ab28c..3538b8231 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/dto/MALManga.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/dto/MALManga.kt @@ -18,8 +18,26 @@ data class MALManga( val mediaType: String, @SerialName("start_date") val startDate: String?, + val authors: List, ) +@Serializable +data class MALAuthorNode( + val node: MALAuthor, + val role: String, +) + +@Serializable +data class MALAuthor( + val id: Int, + @SerialName("first_name") + val firstName: String, + @SerialName("last_name") + val lastName: String, +) { + fun getFullName(): String? = "$firstName $lastName".trim().ifBlank { null } +} + @Serializable data class MALMangaCovers( val large: String = "",