Use OkHttp instead of CIO

This commit is contained in:
vfsfitvnm 2022-08-10 16:31:25 +02:00
parent b634e792f2
commit d0c0cbf4ce
3 changed files with 31 additions and 15 deletions

View file

@ -2,7 +2,7 @@ package it.vfsfitvnm.kugou
import io.ktor.client.HttpClient import io.ktor.client.HttpClient
import io.ktor.client.call.body import io.ktor.client.call.body
import io.ktor.client.engine.cio.CIO import io.ktor.client.engine.okhttp.OkHttp
import io.ktor.client.plugins.BrowserUserAgent import io.ktor.client.plugins.BrowserUserAgent
import io.ktor.client.plugins.compression.ContentEncoding import io.ktor.client.plugins.compression.ContentEncoding
import io.ktor.client.plugins.contentnegotiation.ContentNegotiation import io.ktor.client.plugins.contentnegotiation.ContentNegotiation
@ -22,7 +22,7 @@ import kotlinx.serialization.json.Json
object KuGou { object KuGou {
@OptIn(ExperimentalSerializationApi::class) @OptIn(ExperimentalSerializationApi::class)
private val client by lazy { private val client by lazy {
HttpClient(CIO) { HttpClient(OkHttp) {
BrowserUserAgent() BrowserUserAgent()
expectSuccess = true expectSuccess = true

View file

@ -41,7 +41,7 @@ dependencyResolutionManagement {
version("ktor", "2.0.3") version("ktor", "2.0.3")
library("ktor-client-core", "io.ktor", "ktor-client-core").versionRef("ktor") library("ktor-client-core", "io.ktor", "ktor-client-core").versionRef("ktor")
library("ktor-client-cio", "io.ktor", "ktor-client-cio").versionRef("ktor") library("ktor-client-cio", "io.ktor", "ktor-client-okhttp").versionRef("ktor")
library("ktor-client-content-negotiation", "io.ktor", "ktor-client-content-negotiation").versionRef("ktor") library("ktor-client-content-negotiation", "io.ktor", "ktor-client-content-negotiation").versionRef("ktor")
library("ktor-client-encoding", "io.ktor", "ktor-client-encoding").versionRef("ktor") library("ktor-client-encoding", "io.ktor", "ktor-client-encoding").versionRef("ktor")
library("ktor-client-serialization", "io.ktor", "ktor-client-serialization").versionRef("ktor") library("ktor-client-serialization", "io.ktor", "ktor-client-serialization").versionRef("ktor")

View file

@ -1,25 +1,41 @@
package it.vfsfitvnm.youtubemusic package it.vfsfitvnm.youtubemusic
import io.ktor.client.* import io.ktor.client.HttpClient
import io.ktor.client.call.* import io.ktor.client.call.body
import io.ktor.client.engine.cio.* import io.ktor.client.engine.okhttp.OkHttp
import io.ktor.client.plugins.* import io.ktor.client.plugins.BrowserUserAgent
import io.ktor.client.plugins.compression.* import io.ktor.client.plugins.compression.ContentEncoding
import io.ktor.client.plugins.contentnegotiation.* import io.ktor.client.plugins.compression.brotli
import io.ktor.client.request.* import io.ktor.client.plugins.contentnegotiation.ContentNegotiation
import io.ktor.http.* import io.ktor.client.plugins.defaultRequest
import io.ktor.serialization.kotlinx.json.* import io.ktor.client.request.get
import it.vfsfitvnm.youtubemusic.models.* import io.ktor.client.request.parameter
import io.ktor.client.request.post
import io.ktor.client.request.setBody
import io.ktor.http.ContentType
import io.ktor.http.contentType
import io.ktor.serialization.kotlinx.json.json
import it.vfsfitvnm.youtubemusic.models.BrowseResponse
import it.vfsfitvnm.youtubemusic.models.ContinuationResponse
import it.vfsfitvnm.youtubemusic.models.GetQueueResponse
import it.vfsfitvnm.youtubemusic.models.GetSearchSuggestionsResponse
import it.vfsfitvnm.youtubemusic.models.MusicResponsiveListItemRenderer
import it.vfsfitvnm.youtubemusic.models.MusicShelfRenderer
import it.vfsfitvnm.youtubemusic.models.NavigationEndpoint
import it.vfsfitvnm.youtubemusic.models.NextResponse
import it.vfsfitvnm.youtubemusic.models.PlayerResponse
import it.vfsfitvnm.youtubemusic.models.Runs
import it.vfsfitvnm.youtubemusic.models.SearchResponse
import it.vfsfitvnm.youtubemusic.models.ThumbnailRenderer
import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
object YouTube { object YouTube {
private const val Key = "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8" private const val Key = "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8"
@OptIn(ExperimentalSerializationApi::class) @OptIn(ExperimentalSerializationApi::class)
val client = HttpClient(CIO) { val client = HttpClient(OkHttp) {
BrowserUserAgent() BrowserUserAgent()
expectSuccess = true expectSuccess = true