diff --git a/pkg/adapter/adapter.go b/pkg/adapter/adapter.go index ddd9fbb..8feb1fa 100644 --- a/pkg/adapter/adapter.go +++ b/pkg/adapter/adapter.go @@ -30,7 +30,7 @@ func NewAdapter(nodes []*server.Server, rules []*server.RuleGroup) *Adapter { } } // 合并代理组 - proxyGroup = append(proxyGroup, g...) + proxyGroup = RemoveEmptyGroup(append(proxyGroup, g...)) return &Adapter{ Adapter: proxy.Adapter{ Proxies: proxies, diff --git a/pkg/adapter/uilts.go b/pkg/adapter/uilts.go index cbeebcf..8550097 100644 --- a/pkg/adapter/uilts.go +++ b/pkg/adapter/uilts.go @@ -195,3 +195,31 @@ func RemoveEmptyString(arr []string) []string { } return result } + +// RemoveElement 移除指定元素 +func RemoveElement(arr []string, element ...string) []string { + var result []string + for _, str := range arr { + if !tool.Contains(element, str) { + logger.Infof("Remove Element: %s", str) + result = append(result, str) + } + } + return result +} + +func RemoveEmptyGroup(arr []proxy.Group) []proxy.Group { + var result []proxy.Group + var removeNames []string + for _, group := range arr { + if group.Name == "手动选择" { + group.Proxies = RemoveElement(group.Proxies, removeNames...) + } + if len(group.Proxies) > 0 { + result = append(result, group) + } else { + removeNames = append(removeNames, group.Name) + } + } + return result +}