feat: merge default proxy groups of all subscription

This commit is contained in:
2026-07-20 15:00:11 +08:00
parent 2b73f83a2a
commit 7ff3daa9d3
4 changed files with 172 additions and 2 deletions

View File

@ -350,6 +350,7 @@ func (m *Manager) resolveSubscriptions() []*model.Subscription {
func (m *Manager) mergeSubscriptions(subs []*model.Subscription) (map[string]interface{}, []automation.ProxyRef, bool) {
combined := map[string]interface{}{}
var proxies []automation.ProxyRef
var selectionGroups []map[string]interface{}
for _, sub := range subs {
filePath := sub.GetFilePath(m.Storage.ConfigDir)
@ -374,10 +375,14 @@ func (m *Manager) mergeSubscriptions(subs []*model.Subscription) (map[string]int
}
proxies = append(proxies, automation.PrefixProxyNames(sub.Name, data)...)
if group := popFirstProxyGroup(data); group != nil {
selectionGroups = append(selectionGroups, group)
}
combined = deepMerge(combined, data)
}
combined["rules"] = dedupeMatchRule(combined["rules"])
mergeProxySelection(combined, selectionGroups)
return combined, proxies, true
}