Use a different title for japanese manga vs other manga (#181)

* Use a different title for japanese manga vs other manga

* Revert wildcard import
This commit is contained in:
she11sh0cked 2020-12-21 20:20:49 +01:00 committed by GitHub
parent 820279634e
commit a8c6474f5e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -22,6 +22,7 @@ import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonArray import kotlinx.serialization.json.JsonArray
import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.JsonObject
import kotlinx.serialization.json.buildJsonObject import kotlinx.serialization.json.buildJsonObject
import kotlinx.serialization.json.contentOrNull
import kotlinx.serialization.json.jsonArray import kotlinx.serialization.json.jsonArray
import kotlinx.serialization.json.jsonObject import kotlinx.serialization.json.jsonObject
import kotlinx.serialization.json.jsonPrimitive import kotlinx.serialization.json.jsonPrimitive
@ -103,10 +104,21 @@ class Anilist : API("https://graphql.anilist.co/") {
} }
private fun getTitle(obj: JsonObject): String { private fun getTitle(obj: JsonObject): String {
return obj["title"]!!.jsonObject.let { val titleObj = obj["title"]!!.jsonObject
it["romaji"]?.jsonPrimitive?.content
?: it["english"]?.jsonPrimitive?.content val english = titleObj["english"]?.jsonPrimitive?.contentOrNull
?: it["native"]!!.jsonPrimitive.content val romaji = titleObj["romaji"]?.jsonPrimitive?.contentOrNull
val native = titleObj["native"]?.jsonPrimitive?.contentOrNull
val synonym = obj["synonyms"]!!.jsonArray.getOrNull(0)?.jsonPrimitive?.contentOrNull
val isJP = obj["countryOfOrigin"]!!.jsonPrimitive.content == "JP"
return when {
!english.isNullOrBlank() -> english
isJP && !romaji.isNullOrBlank() -> romaji
!synonym.isNullOrBlank() -> synonym
!isJP && !romaji.isNullOrBlank() -> romaji
else -> native ?: "NO NAME FOUND"
} }
} }
@ -126,12 +138,14 @@ class Anilist : API("https://graphql.anilist.co/") {
|edges { |edges {
|node { |node {
|mediaRecommendation { |mediaRecommendation {
|countryOfOrigin
|siteUrl |siteUrl
|title { |title {
|romaji |romaji
|english |english
|native |native
|} |}
|synonyms
|coverImage { |coverImage {
|large |large
|} |}
@ -203,7 +217,7 @@ open class RecommendsPager(
recs recs
} catch (e: Exception) { } catch (e: Exception) {
Timber.tag("RECOMMENDATIONS").e("%s > Error: %s", key, e.message) Timber.tag("RECOMMENDATIONS").e("%s > Error: %s", key, e.message)
listOf() listOf<SMangaImpl>()
} }
} }
.firstOrNull { it.isNotEmpty() } .firstOrNull { it.isNotEmpty() }