Jelajahi Sumber

Fix: Incorrect time in xray logs (#3587)

* fixed timezone in xray logs

* remove leading / at the address
fgsfds 22 jam lalu
induk
melakukan
538f7fd5d7
2 mengubah file dengan 7 tambahan dan 5 penghapusan
  1. 3 1
      web/html/index.html
  2. 4 4
      web/service/server.go

+ 3 - 1
web/html/index.html

@@ -844,9 +844,11 @@
             text = `<td>${log.Email}</td>`;
           }
 
+          const { locale, timeZone } = Intl.DateTimeFormat().resolvedOptions();
+
           formattedLogs += `
 <tr ${outboundColor}>
-    <td><b>${new Date(log.DateTime).toLocaleString()}</b></td>
+    <td><b>${new Date(log.DateTime).toLocaleString(locale, { timeZone })}</b></td>
     <td>${log.FromAddress}</td>
     <td>${log.ToAddress}</td>
     <td>${log.Inbound}</td>

+ 4 - 4
web/service/server.go

@@ -794,17 +794,17 @@ func (s *ServerService) GetXrayLogs(
 		for i, part := range parts {
 
 			if i == 0 {
-				dateTime, err := time.Parse("2006/01/02 15:04:05.999999", parts[0]+" "+parts[1])
+				dateTime, err := time.ParseInLocation("2006/01/02 15:04:05.999999", parts[0]+" "+parts[1], time.Local)
 				if err != nil {
 					continue
 				}
-				entry.DateTime = dateTime
+				entry.DateTime = dateTime.UTC()
 			}
 
 			if part == "from" {
-				entry.FromAddress = parts[i+1]
+				entry.FromAddress = strings.TrimLeft(parts[i+1], "/")
 			} else if part == "accepted" {
-				entry.ToAddress = parts[i+1]
+				entry.ToAddress = strings.TrimLeft(parts[i+1], "/")
 			} else if strings.HasPrefix(part, "[") {
 				entry.Inbound = part[1:]
 			} else if strings.HasSuffix(part, "]") {