mirror of
https://gitclone.com/github.com/MetaCubeX/Clash.Meta
synced 2024-11-14 21:31:16 +08:00
chore: handle provider proxies in proxies api
This commit is contained in:
parent
7c59916c22
commit
0d300a3540
@ -46,7 +46,7 @@ func parseProxyName(next http.Handler) http.Handler {
|
||||
func findProxyByName(next http.Handler) http.Handler {
|
||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
name := r.Context().Value(CtxKeyProxyName).(string)
|
||||
proxies := tunnel.Proxies()
|
||||
proxies := tunnel.ProxiesWithProviders()
|
||||
proxy, exist := proxies[name]
|
||||
if !exist {
|
||||
render.Status(r, http.StatusNotFound)
|
||||
@ -60,7 +60,7 @@ func findProxyByName(next http.Handler) http.Handler {
|
||||
}
|
||||
|
||||
func getProxies(w http.ResponseWriter, r *http.Request) {
|
||||
proxies := tunnel.Proxies()
|
||||
proxies := tunnel.ProxiesWithProviders()
|
||||
render.JSON(w, r, render.M{
|
||||
"proxies": proxies,
|
||||
})
|
||||
|
@ -127,6 +127,20 @@ func Proxies() map[string]C.Proxy {
|
||||
return proxies
|
||||
}
|
||||
|
||||
func ProxiesWithProviders() map[string]C.Proxy {
|
||||
allProxies := make(map[string]C.Proxy)
|
||||
for name, proxy := range proxies {
|
||||
allProxies[name] = proxy
|
||||
}
|
||||
for _, p := range providers {
|
||||
for _, proxy := range p.Proxies() {
|
||||
name := proxy.Name()
|
||||
allProxies[name] = proxy
|
||||
}
|
||||
}
|
||||
return allProxies
|
||||
}
|
||||
|
||||
// Providers return all compatible providers
|
||||
func Providers() map[string]provider.ProxyProvider {
|
||||
return providers
|
||||
|
Loading…
Reference in New Issue
Block a user