feat: Web UI

update: 校验Rule-Provider是否有重名
modify: 修改meta默认模板
modify: 根据Clash筛选返回配置中的节点类型
This commit is contained in:
2023-09-16 21:46:59 +08:00
parent 918521682c
commit d38d5bcb70
6 changed files with 313 additions and 8 deletions

View File

@ -17,7 +17,7 @@ type SubQuery struct {
Proxy string `form:"proxy" binding:""`
Proxies []string `form:"-" binding:""`
Refresh bool `form:"refresh,default=false" binding:""`
Template string `form:"template" binding:""`
Template string `form:"templates" binding:""`
RuleProvider string `form:"ruleProvider" binding:""`
RuleProviders []RuleProviderStruct `form:"-" binding:""`
Rule string `form:"rule" binding:""`
@ -101,6 +101,14 @@ func ParseQuery(c *gin.Context) (SubQuery, error) {
},
)
}
// 校验 Rule-Provider 是否有重名
names := make(map[string]bool)
for _, ruleProvider := range query.RuleProviders {
if _, ok := names[ruleProvider.Name]; ok {
return SubQuery{}, errors.New("参数错误: Rule-Provider 名称重复")
}
names[ruleProvider.Name] = true
}
} else {
query.RuleProviders = nil
}