From 55552698770c1171f3e6c927604d20222d89ddc3 Mon Sep 17 00:00:00 2001 From: Jannik Date: Wed, 30 Jun 2021 20:17:15 +0200 Subject: [PATCH] sort tmdb results with String.compareTo --- .../mosad/teapod/util/TMDBApiController.kt | 42 ++++++++++++++++++- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/mosad/teapod/util/TMDBApiController.kt b/app/src/main/java/org/mosad/teapod/util/TMDBApiController.kt index 9d51653..205d221 100644 --- a/app/src/main/java/org/mosad/teapod/util/TMDBApiController.kt +++ b/app/src/main/java/org/mosad/teapod/util/TMDBApiController.kt @@ -38,10 +38,48 @@ class TMDBApiController { private suspend fun searchTVShow(title: String): TMDBResponse = withContext(Dispatchers.IO) { val url = URL("$searchTVUrl$preparedParameters&query=${URLEncoder.encode(title, "UTF-8")}") val response = JsonParser.parseString(url.readText()).asJsonObject - //println(response) + println(url) + println(response) return@withContext if (response.get("total_results").asInt > 0) { - response.get("results").asJsonArray.first().asJsonObject.let { + val results = response.get("results").asJsonArray + var result = results.asJsonArray.first() + var bestMatch = Int.MAX_VALUE + + results.forEach { it -> + val name = getStringNotNull(it.asJsonObject, "name") + val rating = name.compareTo(title) + + println("name: $name, title: $title") + + when { + rating < 0 -> { + println("rating < ($rating): $it") + + if ((rating * -1) < bestMatch) { + bestMatch = (rating * -1) + result = it + println("best < ($bestMatch): $it") + } + } + rating == 0 -> { + println("rating == ($rating): $it") + bestMatch = 0 + result = it + println("best == ($bestMatch): $it") + } + else -> { + println("rating > ($rating): $it") + if (rating < bestMatch) { + bestMatch = rating + result = it + println("best > ($bestMatch): $it") + } + } + } + } + + result.asJsonObject.let { val id = getStringNotNull(it, "id").toInt() val overview = getStringNotNull(it, "overview") val posterPath = getStringNotNullPrefix(it, "poster_path", imageUrl)