mirror of
https://github.com/MetaCubeX/ClashMetaForAndroid.git
synced 2025-02-22 01:33:16 +03:00
fix: This is ignored when the URL scheme is "http"
This commit is contained in:
parent
2ab1571e3a
commit
e8b9603bdd
@ -129,7 +129,7 @@ class ProfileManager(private val context: Context) : IProfileManager,
|
|||||||
override suspend fun update(uuid: UUID) {
|
override suspend fun update(uuid: UUID) {
|
||||||
scheduleUpdate(uuid, true)
|
scheduleUpdate(uuid, true)
|
||||||
ImportedDao().queryByUUID(uuid)?.let {
|
ImportedDao().queryByUUID(uuid)?.let {
|
||||||
if (it.type == Profile.Type.Url) {
|
if (it.type == Profile.Type.Url && it.source.startsWith("https://",true)) {
|
||||||
updateFlow(it)
|
updateFlow(it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,7 @@ import kotlinx.coroutines.sync.withLock
|
|||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
|
import java.net.URL
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
|
|
||||||
@ -72,62 +73,64 @@ object ProfileProcessor {
|
|||||||
var total: Long = 0
|
var total: Long = 0
|
||||||
var expire: Long = 0
|
var expire: Long = 0
|
||||||
if (snapshot?.type == Profile.Type.Url) {
|
if (snapshot?.type == Profile.Type.Url) {
|
||||||
val client = OkHttpClient()
|
if (snapshot.source.startsWith("https://", true)) {
|
||||||
val request = Request.Builder()
|
val client = OkHttpClient()
|
||||||
.url(snapshot.source)
|
val request = Request.Builder()
|
||||||
.header("User-Agent", "ClashforWindows/0.19.23")
|
.url(snapshot.source)
|
||||||
.build()
|
.header("User-Agent", "ClashforWindows/0.19.23")
|
||||||
|
.build()
|
||||||
|
|
||||||
client.newCall(request).execute().use { response ->
|
client.newCall(request).execute().use { response ->
|
||||||
val userinfo = response.headers["subscription-userinfo"]
|
val userinfo = response.headers["subscription-userinfo"]
|
||||||
if (response.isSuccessful && userinfo != null) {
|
if (response.isSuccessful && userinfo != null) {
|
||||||
val flags = userinfo.split(";")
|
val flags = userinfo.split(";")
|
||||||
for (flag in flags) {
|
for (flag in flags) {
|
||||||
val info = flag.split("=")
|
val info = flag.split("=")
|
||||||
when {
|
when {
|
||||||
info[0].contains("upload") -> upload =
|
info[0].contains("upload") -> upload =
|
||||||
info[1].toLong()
|
info[1].toLong()
|
||||||
|
|
||||||
info[0].contains("download") -> download =
|
info[0].contains("download") -> download =
|
||||||
info[1].toLong()
|
info[1].toLong()
|
||||||
|
|
||||||
info[0].contains("total") -> total =
|
info[0].contains("total") -> total =
|
||||||
info[1].toLong()
|
info[1].toLong()
|
||||||
|
|
||||||
info[0].contains("expire") -> {
|
info[0].contains("expire") -> {
|
||||||
if (info[1].isNotEmpty()) {
|
if (info[1].isNotEmpty()) {
|
||||||
expire = (info[1].toDouble() * 1000).toLong()
|
expire =
|
||||||
|
(info[1].toDouble() * 1000).toLong()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
val new = Imported(
|
|
||||||
snapshot.uuid,
|
|
||||||
snapshot.name,
|
|
||||||
snapshot.type,
|
|
||||||
snapshot.source,
|
|
||||||
snapshot.interval,
|
|
||||||
upload,
|
|
||||||
download,
|
|
||||||
total,
|
|
||||||
expire,
|
|
||||||
old?.createdAt ?: System.currentTimeMillis()
|
|
||||||
)
|
|
||||||
if (old != null) {
|
|
||||||
ImportedDao().update(new)
|
|
||||||
} else {
|
|
||||||
ImportedDao().insert(new)
|
|
||||||
}
|
|
||||||
|
|
||||||
PendingDao().remove(snapshot.uuid)
|
|
||||||
|
|
||||||
context.pendingDir.resolve(snapshot.uuid.toString())
|
|
||||||
.deleteRecursively()
|
|
||||||
|
|
||||||
context.sendProfileChanged(snapshot.uuid)
|
|
||||||
}
|
}
|
||||||
|
val new = Imported(
|
||||||
|
snapshot.uuid,
|
||||||
|
snapshot.name,
|
||||||
|
snapshot.type,
|
||||||
|
snapshot.source,
|
||||||
|
snapshot.interval,
|
||||||
|
upload,
|
||||||
|
download,
|
||||||
|
total,
|
||||||
|
expire,
|
||||||
|
old?.createdAt ?: System.currentTimeMillis()
|
||||||
|
)
|
||||||
|
if (old != null) {
|
||||||
|
ImportedDao().update(new)
|
||||||
|
} else {
|
||||||
|
ImportedDao().insert(new)
|
||||||
|
}
|
||||||
|
|
||||||
|
PendingDao().remove(snapshot.uuid)
|
||||||
|
|
||||||
|
context.pendingDir.resolve(snapshot.uuid.toString())
|
||||||
|
.deleteRecursively()
|
||||||
|
|
||||||
|
context.sendProfileChanged(snapshot.uuid)
|
||||||
} else if (snapshot?.type == Profile.Type.File) {
|
} else if (snapshot?.type == Profile.Type.File) {
|
||||||
val new = Imported(
|
val new = Imported(
|
||||||
snapshot.uuid,
|
snapshot.uuid,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user