Auto format extension repo URLs
Closes #1392 Closes #1393 (cherry picked from commit 22d8aad598bea8f00f2831779e45a6645392ca0f) # Conflicts: # CHANGELOG.md
This commit is contained in:
parent
fd32f2e879
commit
2187731d70
@ -5,6 +5,7 @@ import mihon.domain.extensionrepo.exception.SaveExtensionRepoException
|
||||
import mihon.domain.extensionrepo.model.ExtensionRepo
|
||||
import mihon.domain.extensionrepo.repository.ExtensionRepoRepository
|
||||
import mihon.domain.extensionrepo.service.ExtensionRepoService
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
|
||||
import tachiyomi.core.common.util.system.logcat
|
||||
|
||||
class CreateExtensionRepo(
|
||||
@ -13,12 +14,13 @@ class CreateExtensionRepo(
|
||||
) {
|
||||
private val repoRegex = """^https://.*/index\.min\.json$""".toRegex()
|
||||
|
||||
suspend fun await(repoUrl: String): Result {
|
||||
if (!repoUrl.matches(repoRegex)) {
|
||||
return Result.InvalidUrl
|
||||
}
|
||||
suspend fun await(indexUrl: String): Result {
|
||||
val formattedIndexUrl = indexUrl.toHttpUrlOrNull()
|
||||
?.toString()
|
||||
?.takeIf { it.matches(repoRegex) }
|
||||
?: return Result.InvalidUrl
|
||||
|
||||
val baseUrl = repoUrl.removeSuffix("/index.min.json")
|
||||
val baseUrl = formattedIndexUrl.removeSuffix("/index.min.json")
|
||||
return service.fetchRepoDetails(baseUrl)?.let { insert(it) } ?: Result.InvalidUrl
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
package mihon.domain.extensionrepo.service
|
||||
|
||||
import androidx.core.net.toUri
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.network.NetworkHelper
|
||||
import eu.kanade.tachiyomi.network.awaitSuccess
|
||||
@ -21,11 +20,9 @@ class ExtensionRepoService(
|
||||
repo: String,
|
||||
): ExtensionRepo? {
|
||||
return withIOContext {
|
||||
val url = "$repo/repo.json".toUri()
|
||||
|
||||
try {
|
||||
with(json) {
|
||||
client.newCall(GET(url.toString()))
|
||||
client.newCall(GET("$repo/repo.json"))
|
||||
.awaitSuccess()
|
||||
.parseAs<ExtensionRepoMetaDto>()
|
||||
.toExtensionRepo(baseUrl = repo)
|
||||
|
Loading…
x
Reference in New Issue
Block a user