|
@@ -9,26 +9,20 @@ import com.google.gson.JsonArray
|
|
|
import eu.kanade.tachiyomi.extension.model.Extension
|
|
|
import eu.kanade.tachiyomi.network.GET
|
|
|
import eu.kanade.tachiyomi.network.NetworkHelper
|
|
|
-import eu.kanade.tachiyomi.network.asObservableSuccess
|
|
|
+import eu.kanade.tachiyomi.network.await
|
|
|
import okhttp3.Response
|
|
|
-import rx.Observable
|
|
|
import uy.kohesive.injekt.injectLazy
|
|
|
|
|
|
internal class ExtensionGithubApi {
|
|
|
|
|
|
private val network: NetworkHelper by injectLazy()
|
|
|
|
|
|
- private val client get() = network.client
|
|
|
-
|
|
|
private val gson: Gson by injectLazy()
|
|
|
|
|
|
- private val repoUrl = "https://raw.githubusercontent.com/inorichi/tachiyomi-extensions/repo"
|
|
|
-
|
|
|
- fun findExtensions(): Observable<List<Extension.Available>> {
|
|
|
- val call = GET("$repoUrl/index.json")
|
|
|
+ suspend fun findExtensions(): List<Extension.Available> {
|
|
|
+ val call = GET("$REPO_URL/index.json")
|
|
|
|
|
|
- return client.newCall(call).asObservableSuccess()
|
|
|
- .map(::parseResponse)
|
|
|
+ return parseResponse(network.client.newCall(call).await())
|
|
|
}
|
|
|
|
|
|
private fun parseResponse(response: Response): List<Extension.Available> {
|
|
@@ -43,13 +37,17 @@ internal class ExtensionGithubApi {
|
|
|
val versionName = element["version"].string
|
|
|
val versionCode = element["code"].int
|
|
|
val lang = element["lang"].string
|
|
|
- val icon = "$repoUrl/icon/${apkName.replace(".apk", ".png")}"
|
|
|
+ val icon = "$REPO_URL/icon/${apkName.replace(".apk", ".png")}"
|
|
|
|
|
|
Extension.Available(name, pkgName, versionName, versionCode, lang, apkName, icon)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
fun getApkUrl(extension: Extension.Available): String {
|
|
|
- return "$repoUrl/apk/${extension.apkName}"
|
|
|
+ return "$REPO_URL/apk/${extension.apkName}"
|
|
|
+ }
|
|
|
+
|
|
|
+ companion object {
|
|
|
+ private const val REPO_URL = "https://raw.githubusercontent.com/inorichi/tachiyomi-extensions/repo"
|
|
|
}
|
|
|
}
|