sort tmdb results with String.compareTo
This commit is contained in:
parent
3fcd1a96b2
commit
5555269877
|
@ -38,10 +38,48 @@ class TMDBApiController {
|
||||||
private suspend fun searchTVShow(title: String): TMDBResponse = withContext(Dispatchers.IO) {
|
private suspend fun searchTVShow(title: String): TMDBResponse = withContext(Dispatchers.IO) {
|
||||||
val url = URL("$searchTVUrl$preparedParameters&query=${URLEncoder.encode(title, "UTF-8")}")
|
val url = URL("$searchTVUrl$preparedParameters&query=${URLEncoder.encode(title, "UTF-8")}")
|
||||||
val response = JsonParser.parseString(url.readText()).asJsonObject
|
val response = JsonParser.parseString(url.readText()).asJsonObject
|
||||||
//println(response)
|
println(url)
|
||||||
|
println(response)
|
||||||
|
|
||||||
return@withContext if (response.get("total_results").asInt > 0) {
|
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 id = getStringNotNull(it, "id").toInt()
|
||||||
val overview = getStringNotNull(it, "overview")
|
val overview = getStringNotNull(it, "overview")
|
||||||
val posterPath = getStringNotNullPrefix(it, "poster_path", imageUrl)
|
val posterPath = getStringNotNullPrefix(it, "poster_path", imageUrl)
|
||||||
|
|
Loading…
Reference in New Issue