mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-12 14:50:25 +08:00
DNSPod支持自定义线路分组
This commit is contained in:
@@ -0,0 +1,17 @@
|
|||||||
|
// Copyright 2023 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||||
|
|
||||||
|
package dnspod
|
||||||
|
|
||||||
|
type CustomLineGroupListResponse struct {
|
||||||
|
BaseResponse
|
||||||
|
|
||||||
|
Data struct {
|
||||||
|
LineGroups []struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
} `json:"line_groups"`
|
||||||
|
Info struct {
|
||||||
|
NowTotal int `json:"now_total"`
|
||||||
|
Total int `json:"total"`
|
||||||
|
} `json:"info"`
|
||||||
|
} `json:"data"`
|
||||||
|
}
|
||||||
@@ -164,6 +164,53 @@ func (this *DNSPodProvider) GetRoutes(domain string) (routes []*dnstypes.Route,
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 自定义线路分组
|
||||||
|
var groupsPerPage = 100
|
||||||
|
var customLineGroupListResponse = new(dnspod.CustomLineGroupListResponse)
|
||||||
|
err = this.doAPI("/Custom.Line.Group.List", map[string]string{
|
||||||
|
"domain": domain,
|
||||||
|
"offset": "0",
|
||||||
|
"length": types.String(groupsPerPage),
|
||||||
|
}, customLineGroupListResponse)
|
||||||
|
if err != nil {
|
||||||
|
// 忽略自定义分组错误
|
||||||
|
err = nil
|
||||||
|
} else {
|
||||||
|
if len(customLineGroupListResponse.Data.LineGroups) > 0 {
|
||||||
|
for _, lineGroup := range customLineGroupListResponse.Data.LineGroups {
|
||||||
|
routes = append(routes, &dnstypes.Route{
|
||||||
|
Name: "分组:" + lineGroup.Name,
|
||||||
|
Code: lineGroup.Name,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if customLineGroupListResponse.Data.Info.Total > customLineGroupListResponse.Data.Info.NowTotal {
|
||||||
|
for page := 1; page <= 100; /** 最多100页 **/ page++ {
|
||||||
|
err = this.doAPI("/Custom.Line.Group.List", map[string]string{
|
||||||
|
"domain": domain,
|
||||||
|
"offset": types.String(page * groupsPerPage),
|
||||||
|
"length": types.String(groupsPerPage),
|
||||||
|
}, customLineGroupListResponse)
|
||||||
|
if err != nil {
|
||||||
|
// 忽略错误
|
||||||
|
err = nil
|
||||||
|
} else {
|
||||||
|
if len(customLineGroupListResponse.Data.LineGroups) == 0 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, lineGroup := range customLineGroupListResponse.Data.LineGroups {
|
||||||
|
routes = append(routes, &dnstypes.Route{
|
||||||
|
Name: "分组:" + lineGroup.Name,
|
||||||
|
Code: lineGroup.Name,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return routes, nil
|
return routes, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user