Browse Source

fix and improve

MHSanaei 1 year ago
parent
commit
d40e61fc45
4 changed files with 21 additions and 24 deletions
  1. 1 6
      web/controller/inbound.go
  2. 4 2
      web/html/xui/client_modal.html
  3. 12 5
      web/html/xui/index.html
  4. 4 11
      web/service/server.go

+ 1 - 6
web/controller/inbound.go

@@ -145,12 +145,7 @@ func (a *InboundController) getClientIps(c *gin.Context) {
 	email := c.Param("email")
 
 	ips, err := a.inboundService.GetInboundClientIps(email)
-	if err != nil {
-		jsonObj(c, "Failed to get client IPs", nil)
-		return
-	}
-
-	if ips == "" {
+	if err != nil || ips == "" {
 		jsonObj(c, "No IP Record", nil)
 		return
 	}

+ 4 - 2
web/html/xui/client_modal.html

@@ -124,12 +124,14 @@
                 try {
                     const msg = await HttpUtil.post(`/panel/inbound/clientIps/${email}`);
                     if (!msg.success) {
+                        document.getElementById("clientIPs").value = msg.obj;
                         return;
                     }
-                    const ips = JSON.parse(msg.obj).join(",\n");
+                    const ips = Array.isArray(msg.obj) ? msg.obj.join(",\n") : msg.obj;
                     document.getElementById("clientIPs").value = ips;
                 } catch (error) {
-                    document.getElementById("clientIPs").value = msg.obj;
+                    console.error(error);
+                    document.getElementById("clientIPs").value = 'An error occurred while making the request';
                 }
             },
             async clearDBClientIps(email) {

+ 12 - 5
web/html/xui/index.html

@@ -449,9 +449,13 @@
                 this.loadingTip = tip;
             },
             async getStatus() {
-                const msg = await HttpUtil.post('/server/status');
-                if (msg.success) {
-                    this.setStatus(msg.obj);
+                try {
+                    const msg = await HttpUtil.post('/server/status');
+                    if (msg.success) {
+                        this.setStatus(msg.obj);
+                    }
+                } catch (e) {
+                    console.error("Failed to get status:", e);
                 }
             },
             setStatus(data) {
@@ -560,11 +564,14 @@
             },
         },
         async mounted() {
-            while (true) {
+            let retries = 0;
+            while (retries < 5) {
                 try {
                     await this.getStatus();
+                    retries = 0;
                 } catch (e) {
-                    console.error(e);
+                    console.error("Error occurred while fetching status:", e);
+                    retries++;
                 }
                 await PromiseUtil.sleep(2000);
             }

+ 4 - 11
web/service/server.go

@@ -86,31 +86,24 @@ type ServerService struct {
 	inboundService InboundService
 }
 
-const DebugMode = false // Set to true during development
-
 func getPublicIP(url string) string {
 	resp, err := http.Get(url)
 	if err != nil {
-		if DebugMode {
-			logger.Warning("get public IP failed:", err)
-		}
 		return "N/A"
 	}
 	defer resp.Body.Close()
 
 	ip, err := io.ReadAll(resp.Body)
 	if err != nil {
-		if DebugMode {
-			logger.Warning("read public IP failed:", err)
-		}
 		return "N/A"
 	}
 
-	if string(ip) == "" {
-		return "N/A" // default value
+	ipString := string(ip)
+	if ipString == "" {
+		return "N/A"
 	}
 
-	return string(ip)
+	return ipString
 }
 
 func (s *ServerService) GetStatus(lastStatus *Status) *Status {