diff options
Diffstat (limited to 'web/service/xray_setting.go')
| -rw-r--r-- | web/service/xray_setting.go | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/web/service/xray_setting.go b/web/service/xray_setting.go index 43d143db..f497bf84 100644 --- a/web/service/xray_setting.go +++ b/web/service/xray_setting.go @@ -1,13 +1,8 @@ package service import ( - "bytes" _ "embed" "encoding/json" - "fmt" - "net/http" - "os" - "time" "x-ui/util/common" "x-ui/xray" @@ -32,142 +27,3 @@ func (s *XraySettingService) CheckXrayConfig(XrayTemplateConfig string) error { } return nil } - -func (s *XraySettingService) GetWarpData() (string, error) { - warp, err := s.SettingService.GetWarp() - if err != nil { - return "", err - } - return warp, nil -} - -func (s *XraySettingService) GetWarpConfig() (string, error) { - var warpData map[string]string - warp, err := s.SettingService.GetWarp() - if err != nil { - return "", err - } - err = json.Unmarshal([]byte(warp), &warpData) - if err != nil { - return "", err - } - - url := fmt.Sprintf("https://api.cloudflareclient.com/v0a2158/reg/%s", warpData["device_id"]) - - req, err := http.NewRequest("GET", url, nil) - if err != nil { - return "", err - } - req.Header.Set("Authorization", "Bearer "+warpData["access_token"]) - - client := &http.Client{} - resp, err := client.Do(req) - if err != nil { - return "", err - } - defer resp.Body.Close() - buffer := bytes.NewBuffer(make([]byte, 8192)) - buffer.Reset() - _, err = buffer.ReadFrom(resp.Body) - if err != nil { - return "", err - } - - return buffer.String(), nil -} - -func (s *XraySettingService) RegWarp(secretKey string, publicKey string) (string, error) { - tos := time.Now().UTC().Format("2006-01-02T15:04:05.000Z") - hostName, _ := os.Hostname() - data := fmt.Sprintf(`{"key":"%s","tos":"%s","type": "PC","model": "x-ui", "name": "%s"}`, publicKey, tos, hostName) - - url := "https://api.cloudflareclient.com/v0a2158/reg" - - req, err := http.NewRequest("POST", url, bytes.NewBuffer([]byte(data))) - if err != nil { - return "", err - } - - req.Header.Add("CF-Client-Version", "a-7.21-0721") - req.Header.Add("Content-Type", "application/json") - - client := &http.Client{} - resp, err := client.Do(req) - if err != nil { - return "", err - } - defer resp.Body.Close() - buffer := bytes.NewBuffer(make([]byte, 8192)) - buffer.Reset() - _, err = buffer.ReadFrom(resp.Body) - if err != nil { - return "", err - } - - var rspData map[string]interface{} - err = json.Unmarshal(buffer.Bytes(), &rspData) - if err != nil { - return "", err - } - - deviceId := rspData["id"].(string) - token := rspData["token"].(string) - license, ok := rspData["account"].(map[string]interface{})["license"].(string) - if !ok { - fmt.Println("Error accessing license value.") - return "", err - } - - warpData := fmt.Sprintf("{\n \"access_token\": \"%s\",\n \"device_id\": \"%s\",", token, deviceId) - warpData += fmt.Sprintf("\n \"license_key\": \"%s\",\n \"private_key\": \"%s\"\n}", license, secretKey) - - s.SettingService.SetWarp(warpData) - - result := fmt.Sprintf("{\n \"data\": %s,\n \"config\": %s\n}", warpData, buffer.String()) - - return result, nil -} - -func (s *XraySettingService) SetWarpLicense(license string) (string, error) { - var warpData map[string]string - warp, err := s.SettingService.GetWarp() - if err != nil { - return "", err - } - err = json.Unmarshal([]byte(warp), &warpData) - if err != nil { - return "", err - } - - url := fmt.Sprintf("https://api.cloudflareclient.com/v0a2158/reg/%s/account", warpData["device_id"]) - data := fmt.Sprintf(`{"license": "%s"}`, license) - - req, err := http.NewRequest("PUT", url, bytes.NewBuffer([]byte(data))) - if err != nil { - return "", err - } - req.Header.Set("Authorization", "Bearer "+warpData["access_token"]) - - client := &http.Client{} - resp, err := client.Do(req) - if err != nil { - return "", err - } - defer resp.Body.Close() - buffer := bytes.NewBuffer(make([]byte, 8192)) - buffer.Reset() - _, err = buffer.ReadFrom(resp.Body) - if err != nil { - return "", err - } - - warpData["license_key"] = license - newWarpData, err := json.MarshalIndent(warpData, "", " ") - if err != nil { - return "", err - } - s.SettingService.SetWarp(string(newWarpData)) - println(string(newWarpData)) - - return string(newWarpData), nil -} |
