diff --git a/CHANGELOG.md b/CHANGELOG.md index a9ee7859b..c19a48925 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ The format is a modified version of [Keep a Changelog](https://keepachangelog.co ## [Unreleased] ### Added - Automatically remove downloads on Suwayomi after reading, configurable via extension settings ([@cpiber](https://github.com/cpiber)) ([#2673](https://github.com/mihonapp/mihon/pull/2673)) +- Display author & artist name in MAL search results ([@MajorTanya](https://github.com/MajorTanya)) ([#2833](https://github.com/mihonapp/mihon/pull/2833)) ### Improved - Minimize memory usage by reducing in-memory cover cache size ([@Lolle2000la](https://github.com/Lolle2000la)) ([#2266](https://github.com/mihonapp/mihon/pull/2266)) 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 84242c13b..7156c2672 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 @@ -217,6 +217,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() } } } @@ -243,7 +250,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 56462a6d7..e5cf84e37 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 = "",