mirror of https://github.com/Corewala/Buran
Merge dbd00f9866
into 326c20f5ff
This commit is contained in:
commit
822e66981f
|
@ -3,6 +3,7 @@ package corewala.buran
|
||||||
import corewala.toURI
|
import corewala.toURI
|
||||||
|
|
||||||
const val GEMSCHEME = "gemini://"
|
const val GEMSCHEME = "gemini://"
|
||||||
|
const val PART_TRAVERSE = ".."
|
||||||
const val TRAVERSE = "../"
|
const val TRAVERSE = "../"
|
||||||
const val SOLIDUS = "/"
|
const val SOLIDUS = "/"
|
||||||
const val DIREND = "/"
|
const val DIREND = "/"
|
||||||
|
@ -41,10 +42,14 @@ class OppenURI constructor(private var ouri: String) {
|
||||||
when {
|
when {
|
||||||
reference.startsWith(GEMSCHEME) -> set(reference)
|
reference.startsWith(GEMSCHEME) -> set(reference)
|
||||||
reference.startsWith(SOLIDUS) -> resolvedUri = "$scheme://$host$reference"
|
reference.startsWith(SOLIDUS) -> resolvedUri = "$scheme://$host$reference"
|
||||||
reference.startsWith(TRAVERSE) -> {
|
reference.startsWith(PART_TRAVERSE) -> {
|
||||||
if(!ouri.endsWith(DIREND)) resolvedUri = ouri.removeFile()
|
val fixedReference = if (reference == PART_TRAVERSE) "$reference/" else reference
|
||||||
val traversalCount = reference.split(TRAVERSE).size - 1
|
if (!ouri.endsWith(DIREND)) {
|
||||||
resolvedUri = traverse(traversalCount) + reference.replace(TRAVERSE, "")
|
resolvedUri = ouri.removeFile()
|
||||||
|
} else {
|
||||||
|
val traversalCount = fixedReference.split(TRAVERSE).size - 1
|
||||||
|
resolvedUri = traverse(traversalCount) + fixedReference.replace(TRAVERSE, "")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
reference.startsWith(QUERY) -> {
|
reference.startsWith(QUERY) -> {
|
||||||
resolvedUri = if(reference.contains(QUERY)){
|
resolvedUri = if(reference.contains(QUERY)){
|
||||||
|
|
Loading…
Reference in New Issue