f0f1f71575
- Config.kt: env > application.properties > дефолты (креды не в коде) - PhoneState.kt: единый стейт — mode, currentItem, audioIndex, mirrorStatus, activeSessionId, сессии (эмуляция), downloaded - PhoneActions.kt: catalog (с бейджами зеркал), open, watch (PlayVideo на очки), makeMirror, mirrorStatus, download/delete, sessions/selectSession, status - Main.kt: новые консольные команды (catalog/open/watch/mirror/dl/rm/sessions/session/status) - GlassesHub: Welcome берёт mode/sessionId из стейта, glasses_off → пауза - JellyfinClient.item() — элемент по id (для open/watch) - 58 тестов, 130 всего, все зелёные; живые проверки: catalog (реальный Jellyfin), watch (PlayVideo с s3-url), status (стейт обновляется)
35 lines
1.2 KiB
Kotlin
35 lines
1.2 KiB
Kotlin
plugins {
|
|
alias(libs.plugins.kotlin.jvm)
|
|
alias(libs.plugins.kotlinx.serialization)
|
|
application
|
|
}
|
|
|
|
kotlin { jvmToolchain(17) }
|
|
|
|
dependencies {
|
|
implementation(project(":lib-core"))
|
|
implementation("io.ktor:ktor-server-core:3.5.2")
|
|
implementation("io.ktor:ktor-server-netty:3.5.2")
|
|
implementation("io.ktor:ktor-server-websockets:3.5.2")
|
|
implementation("io.ktor:ktor-server-content-negotiation:3.5.2")
|
|
implementation("io.ktor:ktor-serialization-kotlinx-json:3.5.2")
|
|
implementation("org.slf4j:slf4j-simple:2.0.17")
|
|
implementation(libs.kotlinx.serialization.json)
|
|
implementation(libs.kotlinx.coroutines.core)
|
|
|
|
testImplementation(kotlin("test"))
|
|
testImplementation("io.ktor:ktor-server-test-host:3.5.2")
|
|
testImplementation("io.ktor:ktor-client-core:3.5.2")
|
|
testImplementation("io.ktor:ktor-client-websockets:3.5.2")
|
|
testImplementation("io.ktor:ktor-client-cio:3.5.2")
|
|
testImplementation("io.ktor:ktor-client-mock:3.5.2")
|
|
testImplementation("io.ktor:ktor-client-content-negotiation:3.5.2")
|
|
testImplementation("io.ktor:ktor-serialization-kotlinx-json:3.5.2")
|
|
}
|
|
|
|
application { mainClass.set("pw.binom.viewmate.host.MainKt") }
|
|
|
|
tasks.test {
|
|
useJUnitPlatform()
|
|
}
|