ruither
09/05/2023, 11:51 AMruither
09/05/2023, 11:51 AMimport io.ktor.server.application.*
import io.ktor.server.response.*
import io.ktor.server.routing.*
import kotlinx.serialization.Serializable
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json
import io.ktor.http.*
import io.ktor.server.auth.*
import io.ktor.server.request.*
import io.ktor.server.response.*
import io.ktor.server.routing.*
import kotlinx.serialization.json.JsonObject
import khttp.get as httpGet
import <http://khttp.post|khttp.post> as httpPost
import khttp.put as httpPut
import khttp.delete as httpDelete
fun Route.radioRouting() {
val ROOT = "<http://radio:3000>"
route("/radio") {
get {
val customTimeout = 60_000 // 60 seconds
val response = httpGet(
url = "$ROOT/radio",
timeout = customTimeout)
if (response.statusCode == 200) {
val stream = response.content.inputStream()
call.response.header(HttpHeaders.ContentType, "audio/mpeg")
call.respondOutputStream {
stream.copyTo(this)
}
stream.close()
} else {
call.respondText("Failed to fetch audio", status = HttpStatusCode.InternalServerError)
}
}
}
}
ruither
09/06/2023, 4:21 PM