handle redirects

This commit is contained in:
Öppen 2020-08-18 20:06:08 +01:00
parent 861d3a8619
commit 079022112f
2 changed files with 13 additions and 10 deletions

View File

@ -99,7 +99,6 @@ class GeminiDatasource: Datasource{
return
}
// OUT >>>>>>>>>>>>>>>>>>>>>>>>>>
val outputStreamWriter = OutputStreamWriter(socket.outputStream)
val bufferedWriter = BufferedWriter(outputStreamWriter)
@ -132,6 +131,7 @@ class GeminiDatasource: Datasource{
val header = GeminiResponse.parseHeader(headerLine)
when {
header.code == GeminiResponse.REDIRECT -> request(URI.create(header.meta), onUpdate)
header.code != GeminiResponse.SUCCESS -> onUpdate(TvaState.ResponseError(header))
header.meta.startsWith("text/gemini") -> getGemtext(socket, uri, header, onUpdate)
header.meta.startsWith("text/") -> getString(socket, uri, header, onUpdate)

View File

@ -12,16 +12,19 @@ object GeminiResponse {
fun parseHeader(header: String): Header{
var meta = ""
if(header.startsWith("2")){
val segments = header.trim().split(" ")
meta = when {
segments.size > 1 -> segments[1]
else -> "text/gemini; charset=utf-8"
when {
header.startsWith("2") -> {
val segments = header.trim().split(" ")
meta = when {
segments.size > 1 -> segments[1]
else -> "text/gemini; charset=utf-8"
}
}
}else{
meta = when {
header.contains(" ") -> header.substring(meta.indexOf(" ") + 1)
else -> header
else -> {
meta = when {
header.contains(" ") -> header.substring(header.indexOf(" ") + 1)
else -> header
}
}
}