style: rule_set for dns

This commit is contained in:
purofle 2024-03-03 11:35:25 +08:00
parent 4c8d098de3
commit b46dbc8c46
No known key found for this signature in database
GPG Key ID: 57DEC1478152D973
3 changed files with 9 additions and 10 deletions

View File

@ -535,7 +535,7 @@ fun buildConfig(
makeSingBoxRule(rule.ip.listByLineOrComma(), true) makeSingBoxRule(rule.ip.listByLineOrComma(), true)
} }
if (rule_set != null) generateRuleSet(ruleSets) if (rule_set != null) generateRuleSet(rule_set, ruleSets)
if (rule.port.isNotBlank()) { if (rule.port.isNotBlank()) {
port = mutableListOf<Int>() port = mutableListOf<Int>()

View File

@ -4418,8 +4418,7 @@ public class SingBoxOptions {
// Generate note: Listable // Generate note: Listable
public List<String> domain_regex; public List<String> domain_regex;
// Generate note: Listable public List<String> rule_set;
public List<String> geosite;
// Generate note: Listable // Generate note: Listable
public List<String> source_ip_cidr; public List<String> source_ip_cidr;

View File

@ -30,14 +30,14 @@ object SingBoxOptionsUtil {
} }
fun SingBoxOptions.DNSRule_DefaultOptions.makeSingBoxRule(list: List<String>) { fun SingBoxOptions.DNSRule_DefaultOptions.makeSingBoxRule(list: List<String>) {
geosite = mutableListOf<String>() rule_set = mutableListOf<String>()
domain = mutableListOf<String>() domain = mutableListOf<String>()
domain_suffix = mutableListOf<String>() domain_suffix = mutableListOf<String>()
domain_regex = mutableListOf<String>() domain_regex = mutableListOf<String>()
domain_keyword = mutableListOf<String>() domain_keyword = mutableListOf<String>()
list.forEach { list.forEach {
if (it.startsWith("geosite:")) { if (it.startsWith("geosite:")) {
geosite.plusAssign(it.removePrefix("geosite:")) rule_set.plusAssign(it)
} else if (it.startsWith("full:")) { } else if (it.startsWith("full:")) {
domain.plusAssign(it.removePrefix("full:").lowercase()) domain.plusAssign(it.removePrefix("full:").lowercase())
} else if (it.startsWith("domain:")) { } else if (it.startsWith("domain:")) {
@ -51,12 +51,12 @@ fun SingBoxOptions.DNSRule_DefaultOptions.makeSingBoxRule(list: List<String>) {
domain.plusAssign(it.lowercase()) domain.plusAssign(it.lowercase())
} }
} }
geosite?.removeIf { it.isNullOrBlank() } rule_set?.removeIf { it.isNullOrBlank() }
domain?.removeIf { it.isNullOrBlank() } domain?.removeIf { it.isNullOrBlank() }
domain_suffix?.removeIf { it.isNullOrBlank() } domain_suffix?.removeIf { it.isNullOrBlank() }
domain_regex?.removeIf { it.isNullOrBlank() } domain_regex?.removeIf { it.isNullOrBlank() }
domain_keyword?.removeIf { it.isNullOrBlank() } domain_keyword?.removeIf { it.isNullOrBlank() }
if (geosite?.isEmpty() == true) geosite = null if (rule_set?.isEmpty() == true) rule_set = null
if (domain?.isEmpty() == true) domain = null if (domain?.isEmpty() == true) domain = null
if (domain_suffix?.isEmpty() == true) domain_suffix = null if (domain_suffix?.isEmpty() == true) domain_suffix = null
if (domain_regex?.isEmpty() == true) domain_regex = null if (domain_regex?.isEmpty() == true) domain_regex = null
@ -64,7 +64,7 @@ fun SingBoxOptions.DNSRule_DefaultOptions.makeSingBoxRule(list: List<String>) {
} }
fun SingBoxOptions.DNSRule_DefaultOptions.checkEmpty(): Boolean { fun SingBoxOptions.DNSRule_DefaultOptions.checkEmpty(): Boolean {
if (geosite?.isNotEmpty() == true) return false if (rule_set?.isNotEmpty() == true) return false
if (domain?.isNotEmpty() == true) return false if (domain?.isNotEmpty() == true) return false
if (domain_suffix?.isNotEmpty() == true) return false if (domain_suffix?.isNotEmpty() == true) return false
if (domain_regex?.isNotEmpty() == true) return false if (domain_regex?.isNotEmpty() == true) return false
@ -73,8 +73,8 @@ fun SingBoxOptions.DNSRule_DefaultOptions.checkEmpty(): Boolean {
return true return true
} }
fun SingBoxOptions.Rule_DefaultOptions.generateRuleSet(ruleSet: MutableList<RuleSet>) { fun generateRuleSet(ruleSetString: List<String>, ruleSet: MutableList<RuleSet>) {
rule_set?.forEach { ruleSetString.forEach {
when { when {
it.startsWith("geoip") -> { it.startsWith("geoip") -> {
val geoipPath = GeoipUtils.generateRuleSet(country = it.removePrefix("geoip:")) val geoipPath = GeoipUtils.generateRuleSet(country = it.removePrefix("geoip:"))