Added update feature

This commit is contained in:
tom5079
2019-05-12 19:15:53 +09:00
parent 06c7d77497
commit abd2f3ae17
11 changed files with 174 additions and 10 deletions

View File

@@ -0,0 +1,31 @@
package xyz.quaver.pupil.util
import kotlinx.serialization.json.*
import java.net.URL
fun getReleases(url: String) : JsonArray {
return URL(url).readText().let {
Json(JsonConfiguration.Stable).parse(JsonArray.serializer(), it)
}
}
fun checkUpdate(url: String, currentVersion: String) : JsonObject? {
val releases = getReleases(url)
if (releases.isEmpty())
return null
if (currentVersion != releases[0].jsonObject["tag_name"]?.content)
return releases[0].jsonObject
return null
}
fun getApkUrl(releases: JsonObject, releaseName: String) : Pair<String?, String?>? {
releases["assets"]?.jsonArray?.forEach {
if (Regex(releaseName).matches(it.jsonObject["name"]?.content ?: ""))
return Pair(it.jsonObject["browser_download_url"]?.content, it.jsonObject["name"]?.content)
}
return null
}