mirror of
https://github.com/MetaCubeX/ClashMetaForAndroid.git
synced 2025-02-19 16:23:14 +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) {
|
||||
scheduleUpdate(uuid, true)
|
||||
ImportedDao().queryByUUID(uuid)?.let {
|
||||
if (it.type == Profile.Type.Url) {
|
||||
if (it.type == Profile.Type.Url && it.source.startsWith("https://",true)) {
|
||||
updateFlow(it)
|
||||
}
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ import kotlinx.coroutines.sync.withLock
|
||||
import kotlinx.coroutines.withContext
|
||||
import okhttp3.OkHttpClient
|
||||
import okhttp3.Request
|
||||
import java.net.URL
|
||||
import java.util.*
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@ -72,62 +73,64 @@ object ProfileProcessor {
|
||||
var total: Long = 0
|
||||
var expire: Long = 0
|
||||
if (snapshot?.type == Profile.Type.Url) {
|
||||
val client = OkHttpClient()
|
||||
val request = Request.Builder()
|
||||
.url(snapshot.source)
|
||||
.header("User-Agent", "ClashforWindows/0.19.23")
|
||||
.build()
|
||||
if (snapshot.source.startsWith("https://", true)) {
|
||||
val client = OkHttpClient()
|
||||
val request = Request.Builder()
|
||||
.url(snapshot.source)
|
||||
.header("User-Agent", "ClashforWindows/0.19.23")
|
||||
.build()
|
||||
|
||||
client.newCall(request).execute().use { response ->
|
||||
val userinfo = response.headers["subscription-userinfo"]
|
||||
if (response.isSuccessful && userinfo != null) {
|
||||
val flags = userinfo.split(";")
|
||||
for (flag in flags) {
|
||||
val info = flag.split("=")
|
||||
when {
|
||||
info[0].contains("upload") -> upload =
|
||||
info[1].toLong()
|
||||
client.newCall(request).execute().use { response ->
|
||||
val userinfo = response.headers["subscription-userinfo"]
|
||||
if (response.isSuccessful && userinfo != null) {
|
||||
val flags = userinfo.split(";")
|
||||
for (flag in flags) {
|
||||
val info = flag.split("=")
|
||||
when {
|
||||
info[0].contains("upload") -> upload =
|
||||
info[1].toLong()
|
||||
|
||||
info[0].contains("download") -> download =
|
||||
info[1].toLong()
|
||||
info[0].contains("download") -> download =
|
||||
info[1].toLong()
|
||||
|
||||
info[0].contains("total") -> total =
|
||||
info[1].toLong()
|
||||
info[0].contains("total") -> total =
|
||||
info[1].toLong()
|
||||
|
||||
info[0].contains("expire") -> {
|
||||
if (info[1].isNotEmpty()) {
|
||||
expire = (info[1].toDouble() * 1000).toLong()
|
||||
info[0].contains("expire") -> {
|
||||
if (info[1].isNotEmpty()) {
|
||||
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) {
|
||||
val new = Imported(
|
||||
snapshot.uuid,
|
||||
|
Loading…
x
Reference in New Issue
Block a user