d95d289d29
media/JellyfinClient: users, rootItems, items, search, allItems, posterUrl (X-Emby-Token) media/MirrorClient: createMirror, mirrorByItem (404→null), list, delete, scan (X-API-Key) media/HttpClient: defaultHttpClient (ContentNegotiation+json, таймауты, ApiClientException) Ktor 3.3.0 (совместим с Kotlin 2.2; 3.5.2 требует Kotlin 2.3 — не берём) 17 тестов (MockEngine): пути, методы, заголовки, JSON, 201/404, round-trip DTO. Проверено на живых серверах: Jellyfin (6 users, корень, поиск 'дюна'), mirror (by-item done + url, список done)
52 lines
1.4 KiB
Kotlin
52 lines
1.4 KiB
Kotlin
plugins {
|
|
alias(libs.plugins.kotlin.multiplatform)
|
|
alias(libs.plugins.android.library)
|
|
alias(libs.plugins.kotlinx.serialization)
|
|
}
|
|
|
|
kotlin {
|
|
jvmToolchain(17)
|
|
|
|
androidTarget {
|
|
compilerOptions {
|
|
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17)
|
|
}
|
|
}
|
|
jvm()
|
|
|
|
sourceSets {
|
|
commonMain.dependencies {
|
|
implementation(libs.kotlinx.serialization.json)
|
|
implementation(libs.kotlinx.coroutines.core)
|
|
implementation(libs.ktor.client.core)
|
|
implementation(libs.ktor.client.content.negotiation)
|
|
implementation(libs.ktor.client.logging)
|
|
implementation(libs.ktor.serialization.kotlinx.json)
|
|
}
|
|
commonTest.dependencies {
|
|
implementation(kotlin("test"))
|
|
implementation(libs.ktor.client.mock)
|
|
implementation(libs.kotlinx.coroutines.test)
|
|
}
|
|
androidMain.dependencies {
|
|
implementation(libs.kotlinx.coroutines.android)
|
|
implementation(libs.ktor.client.okhttp)
|
|
}
|
|
jvmMain.dependencies {
|
|
implementation(libs.ktor.client.cio)
|
|
}
|
|
}
|
|
}
|
|
|
|
android {
|
|
namespace = "pw.binom.viewmate.core"
|
|
compileSdk = 35
|
|
defaultConfig {
|
|
minSdk = 26
|
|
}
|
|
compileOptions {
|
|
sourceCompatibility = JavaVersion.VERSION_17
|
|
targetCompatibility = JavaVersion.VERSION_17
|
|
}
|
|
}
|