mirror of
https://github.com/MetaCubeX/mihomo.git
synced 2024-09-27 02:17:54 +00:00
chore: Add filter for include-all-proxies
This commit is contained in:
parent
3ae4014b39
commit
fd7ecc004f
1 changed files with 18 additions and 1 deletions
|
@ -5,6 +5,8 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/dlclark/regexp2"
|
||||||
|
|
||||||
"github.com/metacubex/mihomo/adapter/outbound"
|
"github.com/metacubex/mihomo/adapter/outbound"
|
||||||
"github.com/metacubex/mihomo/adapter/provider"
|
"github.com/metacubex/mihomo/adapter/provider"
|
||||||
"github.com/metacubex/mihomo/common/structure"
|
"github.com/metacubex/mihomo/common/structure"
|
||||||
|
@ -70,8 +72,23 @@ func ParseProxyGroup(config map[string]any, proxyMap map[string]C.Proxy, provide
|
||||||
groupOption.Use = append(groupOption.Use, AllProviders...)
|
groupOption.Use = append(groupOption.Use, AllProviders...)
|
||||||
}
|
}
|
||||||
if groupOption.IncludeAllProxies {
|
if groupOption.IncludeAllProxies {
|
||||||
|
if groupOption.Filter != "" {
|
||||||
|
var filterRegs []*regexp2.Regexp
|
||||||
|
for _, filter := range strings.Split(groupOption.Filter, "`") {
|
||||||
|
filterReg := regexp2.MustCompile(filter, 0)
|
||||||
|
filterRegs = append(filterRegs, filterReg)
|
||||||
|
}
|
||||||
|
for _, p := range AllProxies {
|
||||||
|
for _, filterReg := range filterRegs {
|
||||||
|
if mat, _ := filterReg.FindStringMatch(p); mat != nil {
|
||||||
|
groupOption.Proxies = append(groupOption.Proxies, p)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
groupOption.Proxies = append(groupOption.Proxies, AllProxies...)
|
groupOption.Proxies = append(groupOption.Proxies, AllProxies...)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if len(groupOption.Proxies) == 0 && len(groupOption.Use) == 0 {
|
if len(groupOption.Proxies) == 0 && len(groupOption.Use) == 0 {
|
||||||
return nil, fmt.Errorf("%s: %w", groupName, errMissProxy)
|
return nil, fmt.Errorf("%s: %w", groupName, errMissProxy)
|
||||||
|
|
Loading…
Reference in a new issue