Skip to content

Commit 7da3bdd

Browse files
committed
import subscription url
1 parent 56fd9df commit 7da3bdd

2 files changed

Lines changed: 11 additions & 2 deletions

File tree

app/src/main/java/io/nekohasekai/sagernet/ktx/Formats.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import io.nekohasekai.sagernet.fmt.v2ray.parseV2Ray
1717
import moe.matsuri.nb4a.proxy.anytls.parseAnytls
1818
import moe.matsuri.nb4a.utils.JavaUtil.gson
1919
import moe.matsuri.nb4a.utils.Util
20+
import okhttp3.HttpUrl
2021
import org.json.JSONArray
2122
import org.json.JSONException
2223
import org.json.JSONObject
@@ -137,6 +138,14 @@ suspend fun parseProxies(text: String): List<AbstractBean> {
137138
entities.add(parseHttp(this))
138139
}.onFailure {
139140
Logs.w(it)
141+
val clashUrl = HttpUrl.Builder()
142+
.scheme("https")
143+
.host("install-config")
144+
.addQueryParameter("url", this)
145+
.build()
146+
.toString()
147+
.replaceFirst("https://", "clash://")
148+
throw (SubscriptionFoundException(clashUrl))
140149
}
141150
} else if (startsWith("vmess://")) {
142151
Logs.d("Try parse v2ray link: $this")

app/src/main/java/io/nekohasekai/sagernet/ui/ScannerActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import android.Manifest
44
import android.content.Intent
55
import android.content.pm.ShortcutManager
66
import android.graphics.ImageDecoder
7-
import android.net.Uri
87
import android.os.Build
98
import android.os.Bundle
109
import android.provider.MediaStore
@@ -13,6 +12,7 @@ import android.view.MenuItem
1312
import android.widget.Toast
1413
import androidx.activity.result.contract.ActivityResultContracts
1514
import androidx.core.content.getSystemService
15+
import androidx.core.net.toUri
1616
import com.google.zxing.Result
1717
import com.king.zxing.CameraScan
1818
import com.king.zxing.DefaultCameraScan
@@ -138,7 +138,7 @@ class ScannerActivity : ThemedActivity(),
138138
} catch (e: SubscriptionFoundException) {
139139
startActivity(Intent(this@ScannerActivity, MainActivity::class.java).apply {
140140
action = Intent.ACTION_VIEW
141-
data = Uri.parse(e.link)
141+
data = e.link.toUri()
142142
})
143143
} catch (e: Throwable) {
144144
Logs.w(e)

0 commit comments

Comments
 (0)