update ktor to version 2.0.3

This commit is contained in:
Jannik 2022-08-19 18:15:37 +02:00
parent 821f8b5590
commit f398c82f62
Signed by: Seil0
GPG Key ID: E8459F3723C52C24
6 changed files with 29 additions and 28 deletions

View File

@ -74,7 +74,8 @@ dependencies {
implementation "io.ktor:ktor-client-core:$ktor_version"
implementation "io.ktor:ktor-client-android:$ktor_version"
implementation "io.ktor:ktor-client-serialization:$ktor_version"
implementation "io.ktor:ktor-client-content-negotiation:$ktor_version"
implementation "io.ktor:ktor-serialization-kotlinx-json:$ktor_version"
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'

View File

@ -25,13 +25,13 @@ package org.mosad.teapod.parser.crunchyroll
import android.util.Log
import io.ktor.client.*
import io.ktor.client.call.*
import io.ktor.client.features.*
import io.ktor.client.features.json.*
import io.ktor.client.features.json.serializer.*
import io.ktor.client.plugins.*
import io.ktor.client.plugins.contentnegotiation.*
import io.ktor.client.request.*
import io.ktor.client.request.forms.*
import io.ktor.client.statement.*
import io.ktor.http.*
import io.ktor.serialization.kotlinx.json.*
import kotlinx.coroutines.*
import kotlinx.serialization.SerializationException
import kotlinx.serialization.json.Json
@ -41,14 +41,14 @@ import kotlinx.serialization.json.put
import org.mosad.teapod.preferences.EncryptedPreferences
import org.mosad.teapod.preferences.Preferences
private val json = Json { ignoreUnknownKeys = true }
object Crunchyroll {
private val TAG = javaClass.name
private val client = HttpClient {
install(JsonFeature) {
serializer = KotlinxSerializer(json)
install(ContentNegotiation) {
json(Json {
ignoreUnknownKeys = true
})
}
}
private const val baseUrl = "https://beta-api.crunchyroll.com"
@ -77,7 +77,7 @@ object Crunchyroll {
*/
fun initBasicApiToken() = runBlocking {
withContext(Dispatchers.IO) {
basicApiToken = (client.get(basicApiTokenUrl) as HttpResponse).readText()
basicApiToken = client.get { url(basicApiTokenUrl) }.bodyAsText()
Log.i(TAG, "basic auth token: $basicApiToken")
}
}
@ -107,7 +107,7 @@ object Crunchyroll {
val response: HttpResponse = client.submitForm("$baseUrl$tokenEndpoint", formParameters = formData) {
header("Authorization", "Basic $basicApiToken")
}
token = response.receive()
token = response.body()
tokenValidUntil = System.currentTimeMillis() + (token.expiresIn * 1000)
response.status
} catch (ex: ClientRequestException) {
@ -155,10 +155,10 @@ object Crunchyroll {
// for json set body and content type
if (bodyObject is JsonObject) {
body = bodyObject
setBody(bodyObject)
contentType(ContentType.Application.Json)
}
}
}.body()
response
}

View File

@ -135,8 +135,6 @@ class PlayerViewModel(application: Application) : AndroidViewModel(application)
currentPlayheads = Crunchyroll.playheads(episodeIDs)
}
).joinAll()
Log.d(classTag, "meta: $mediaMeta")
setCurrentEpisode(episodeId)

View File

@ -24,11 +24,12 @@ package org.mosad.teapod.util.metadb
import android.util.Log
import io.ktor.client.*
import io.ktor.client.features.*
import io.ktor.client.features.json.*
import io.ktor.client.features.json.serializer.*
import io.ktor.client.call.*
import io.ktor.client.plugins.*
import io.ktor.client.plugins.contentnegotiation.*
import io.ktor.client.request.*
import io.ktor.http.*
import io.ktor.serialization.kotlinx.json.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import kotlinx.serialization.decodeFromString
@ -40,8 +41,8 @@ object MetaDBController {
private const val repoUrl = "https://gitlab.com/Seil0/teapodmetadb/-/raw/main/crunchy/"
private val client = HttpClient {
install(JsonFeature) {
serializer = KotlinxSerializer(Json)
install(ContentNegotiation) {
json()
}
}
@ -49,7 +50,7 @@ object MetaDBController {
private var metaCacheList = arrayListOf<Meta>()
suspend fun list() = withContext(Dispatchers.IO) {
val raw: String = client.get("$repoUrl/list.json")
val raw: String = client.get("$repoUrl/list.json").body()
mediaList = Json.decodeFromString(raw)
}
@ -70,7 +71,7 @@ object MetaDBController {
private suspend fun getTVShowMetadataFromDB(crSeriesId: String): TVShowMeta? = withContext(Dispatchers.IO) {
return@withContext try {
val raw: String = client.get("$repoUrl/tv/$crSeriesId/media.json")
val raw: String = client.get("$repoUrl/tv/$crSeriesId/media.json").body()
val meta: TVShowMeta = Json.decodeFromString(raw)
metaCacheList.add(meta)

View File

@ -25,10 +25,10 @@ package org.mosad.teapod.util.tmdb
import android.util.Log
import io.ktor.client.*
import io.ktor.client.call.*
import io.ktor.client.features.json.*
import io.ktor.client.features.json.serializer.*
import io.ktor.client.plugins.contentnegotiation.*
import io.ktor.client.request.*
import io.ktor.client.statement.*
import io.ktor.serialization.kotlinx.json.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.invoke
@ -46,10 +46,11 @@ import org.mosad.teapod.util.concatenate
class TMDBApiController {
private val classTag = javaClass.name
private val json = Json { ignoreUnknownKeys = true }
private val client = HttpClient {
install(JsonFeature) {
serializer = KotlinxSerializer(json)
install(ContentNegotiation) {
json(Json {
ignoreUnknownKeys = true
})
}
}
@ -78,7 +79,7 @@ class TMDBApiController {
}
}
response.receive<T>()
response.body<T>()
}
}

View File

@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlin_version = "1.7.10"
ext.ktor_version = "1.6.8"
ext.ktor_version = "2.0.3"
ext.exo_version = "2.17.1"
repositories {
google()