mirror of
https://github.com/gedoor/legado.git
synced 2024-09-01 09:34:25 +08:00
优化
This commit is contained in:
parent
dfe303fc9f
commit
ccbd81a55c
51
app/src/androidTest/java/io/legado/app/UpdateTest.kt
Normal file
51
app/src/androidTest/java/io/legado/app/UpdateTest.kt
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
package io.legado.app
|
||||||
|
|
||||||
|
import io.legado.app.exception.NoStackTraceException
|
||||||
|
import io.legado.app.help.http.okHttpClient
|
||||||
|
import io.legado.app.utils.channel
|
||||||
|
import io.legado.app.utils.jsonPath
|
||||||
|
import okhttp3.Request
|
||||||
|
import org.junit.Test
|
||||||
|
import splitties.init.appCtx
|
||||||
|
|
||||||
|
class UpdateTest {
|
||||||
|
|
||||||
|
private val lastReleaseUrl = "https://api.github.com/repos/gedoor/legado/releases/latest"
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun updateApp() {
|
||||||
|
val body = okHttpClient.newCall(Request.Builder().url(lastReleaseUrl).build()).execute()
|
||||||
|
.body!!.string()
|
||||||
|
val rootDoc = jsonPath.parse(body)
|
||||||
|
val downloadUrl =
|
||||||
|
rootDoc.read<List<String>>("\$.assets[?(@.name =~ /legado_app_.*?apk\$/)].browser_download_url")
|
||||||
|
print(downloadUrl)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun updateLollipop() {
|
||||||
|
val body = okHttpClient.newCall(Request.Builder().url(lastReleaseUrl).build()).execute()
|
||||||
|
.body!!.string()
|
||||||
|
val rootDoc = jsonPath.parse(body)
|
||||||
|
val downloadUrl =
|
||||||
|
rootDoc.read<List<String>>("\$.assets[?(@.name =~ /legado_lollipop_.*?apk\$/)].browser_download_url")
|
||||||
|
print(downloadUrl)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun updateChannel() {
|
||||||
|
val body = okHttpClient.newCall(Request.Builder().url(lastReleaseUrl).build()).execute()
|
||||||
|
.body!!.string()
|
||||||
|
val rootDoc = jsonPath.parse(body)
|
||||||
|
val path = "\$.assets[?(@.name =~ /legado_${appCtx.channel}_.*?apk\$/)]"
|
||||||
|
val downloadUrl = rootDoc.read<List<String>>("${path}.browser_download_url")
|
||||||
|
.firstOrNull()
|
||||||
|
?: throw NoStackTraceException("获取新版本出错")
|
||||||
|
val fileName = rootDoc.read<List<String>>("${path}.name")
|
||||||
|
.firstOrNull()
|
||||||
|
?: throw NoStackTraceException("获取新版本出错")
|
||||||
|
print(downloadUrl)
|
||||||
|
print(fileName)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -6,13 +6,15 @@ import io.legado.app.exception.NoStackTraceException
|
|||||||
import io.legado.app.help.coroutine.Coroutine
|
import io.legado.app.help.coroutine.Coroutine
|
||||||
import io.legado.app.help.http.newCallStrResponse
|
import io.legado.app.help.http.newCallStrResponse
|
||||||
import io.legado.app.help.http.okHttpClient
|
import io.legado.app.help.http.okHttpClient
|
||||||
|
import io.legado.app.utils.channel
|
||||||
import io.legado.app.utils.jsonPath
|
import io.legado.app.utils.jsonPath
|
||||||
import io.legado.app.utils.readString
|
import io.legado.app.utils.readString
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
|
import splitties.init.appCtx
|
||||||
|
|
||||||
@Keep
|
@Keep
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
object AppUpdateGitHub: AppUpdate.AppUpdateInterface {
|
object AppUpdateGitHub : AppUpdate.AppUpdateInterface {
|
||||||
|
|
||||||
override fun check(
|
override fun check(
|
||||||
scope: CoroutineScope,
|
scope: CoroutineScope,
|
||||||
@ -31,9 +33,12 @@ object AppUpdateGitHub: AppUpdate.AppUpdateInterface {
|
|||||||
if (tagName > AppConst.appInfo.versionName) {
|
if (tagName > AppConst.appInfo.versionName) {
|
||||||
val updateBody = rootDoc.readString("$.body")
|
val updateBody = rootDoc.readString("$.body")
|
||||||
?: throw NoStackTraceException("获取新版本出错")
|
?: throw NoStackTraceException("获取新版本出错")
|
||||||
val downloadUrl = rootDoc.readString("$.assets[0].browser_download_url")
|
val path = "\$.assets[?(@.name =~ /legado_${appCtx.channel}_.*?apk\$/)]"
|
||||||
|
val downloadUrl = rootDoc.read<List<String>>("${path}.browser_download_url")
|
||||||
|
.firstOrNull()
|
||||||
?: throw NoStackTraceException("获取新版本出错")
|
?: throw NoStackTraceException("获取新版本出错")
|
||||||
val fileName = rootDoc.readString("$.assets[0].name")
|
val fileName = rootDoc.read<List<String>>("${path}.name")
|
||||||
|
.firstOrNull()
|
||||||
?: throw NoStackTraceException("获取新版本出错")
|
?: throw NoStackTraceException("获取新版本出错")
|
||||||
return@async AppUpdate.UpdateInfo(tagName, updateBody, downloadUrl, fileName)
|
return@async AppUpdate.UpdateInfo(tagName, updateBody, downloadUrl, fileName)
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user