mirror of
https://github.com/MatsuriDayo/NekoBoxForAndroid.git
synced 2025-12-19 22:50:05 +08:00
Refactor rule provider selection (#547)
This commit is contained in:
parent
fb55430f67
commit
89ef91cebe
@ -249,25 +249,25 @@ class AssetsActivity : ThemedActivity() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val rulesProviders = listOf(
|
||||||
|
RuleAssetsProvider(
|
||||||
|
"SagerNet/sing-geoip",
|
||||||
|
"SagerNet/sing-geosite",
|
||||||
|
),
|
||||||
|
RuleAssetsProvider(
|
||||||
|
"soffchen/sing-geoip",
|
||||||
|
"soffchen/sing-geosite",
|
||||||
|
),
|
||||||
|
RuleAssetsProvider(
|
||||||
|
"Chocolate4U/Iran-sing-box-rules"
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
suspend fun updateAsset(file: File, versionFile: File, localVersion: String) {
|
suspend fun updateAsset(file: File, versionFile: File, localVersion: String) {
|
||||||
val repo: String
|
|
||||||
var fileName = file.name
|
var fileName = file.name
|
||||||
|
|
||||||
if (DataStore.rulesProvider == 0) {
|
val ruleProvider = rulesProviders[DataStore.rulesProvider]
|
||||||
if (file.name == assetNames[0]) {
|
val repo = ruleProvider.repoByFileName[fileName]
|
||||||
repo = "SagerNet/sing-geoip"
|
|
||||||
} else {
|
|
||||||
repo = "SagerNet/sing-geosite"
|
|
||||||
}
|
|
||||||
} else if (DataStore.rulesProvider == 1) {
|
|
||||||
if (file.name == assetNames[0]) {
|
|
||||||
repo = "soffchen/sing-geoip"
|
|
||||||
} else {
|
|
||||||
repo = "soffchen/sing-geosite"
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
repo = "Chocolate4U/Iran-sing-box-rules"
|
|
||||||
}
|
|
||||||
|
|
||||||
val client = Libcore.newHttpClient().apply {
|
val client = Libcore.newHttpClient().apply {
|
||||||
modernTLS()
|
modernTLS()
|
||||||
@ -340,5 +340,17 @@ class AssetsActivity : ThemedActivity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private data class RuleAssetsProvider(
|
||||||
|
val repoByFileName: Map<String, String>
|
||||||
|
) {
|
||||||
|
constructor(
|
||||||
|
geoipRepo: String,
|
||||||
|
geositeRepo: String = geoipRepo,
|
||||||
|
) : this(
|
||||||
|
mapOf(
|
||||||
|
"geoip.db" to geoipRepo,
|
||||||
|
"geosite.db" to geositeRepo,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user