Fix integration with clash-dashboard

This commit is contained in:
世界
2022-07-22 09:29:13 +08:00
parent 8004ff51f0
commit 3838d3070d
6 changed files with 58 additions and 72 deletions

View File

@@ -4,15 +4,13 @@ import (
"context"
"net/http"
"github.com/sagernet/sing-box/adapter"
"github.com/go-chi/chi/v5"
"github.com/go-chi/render"
)
func proxyProviderRouter(server *Server, router adapter.Router) http.Handler {
func proxyProviderRouter() http.Handler {
r := chi.NewRouter()
r.Get("/", getProviders(server, router))
r.Get("/", getProviders)
r.Route("/{name}", func(r chi.Router) {
r.Use(parseProviderName, findProviderByName)
@@ -23,35 +21,10 @@ func proxyProviderRouter(server *Server, router adapter.Router) http.Handler {
return r
}
func getProviders(server *Server, router adapter.Router) func(w http.ResponseWriter, r *http.Request) {
return func(w http.ResponseWriter, r *http.Request) {
var proxies []any
proxies = append(proxies, render.M{
"history": []*DelayHistory{},
"name": "DIRECT",
"type": "Direct",
"udp": true,
})
proxies = append(proxies, render.M{
"history": []*DelayHistory{},
"name": "REJECT",
"type": "Reject",
"udp": true,
})
for _, detour := range router.Outbounds() {
proxies = append(proxies, proxyInfo(server, detour))
}
render.JSON(w, r, render.M{
"providers": render.M{
"default": render.M{
"name": "default",
"type": "Proxy",
"proxies": proxies,
"vehicleType": "Compatible",
},
},
})
}
func getProviders(w http.ResponseWriter, r *http.Request) {
render.JSON(w, r, render.M{
"providers": render.M{},
})
}
func getProvider(w http.ResponseWriter, r *http.Request) {