Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/sub
diff options
context:
space:
mode:
authorTeleDark <46258401+TeleDark@users.noreply.github.com>2023-08-01 23:58:51 +0300
committerGitHub <noreply@github.com>2023-08-01 23:58:51 +0300
commitc213fb621693d7c8167646f9830a782cb43f8104 (patch)
tree8f149983d44f96687e6dffccd064400c7eb617c7 /sub
parentdd0217b46b7a557c52a7f8a19b08530cb2878219 (diff)
Display 'terminated' in title when service is terminated (#839)
Diffstat (limited to 'sub')
-rw-r--r--sub/subService.go41
1 files changed, 37 insertions, 4 deletions
diff --git a/sub/subService.go b/sub/subService.go
index d650da0c..d82b8ceb 100644
--- a/sub/subService.go
+++ b/sub/subService.go
@@ -144,8 +144,15 @@ func (s *SubService) genVmessLink(inbound *model.Inbound, email string, expiryTi
remainedTraffic := s.getRemainedTraffic(email)
expiryTimeString := getExpiryTime(expiryTime)
+ remark := ""
+ isTerminated := strings.Contains(expiryTimeString, "Terminated") || strings.Contains(remainedTraffic, "Terminated")
+
+ if isTerminated {
+ remark = fmt.Sprintf("%s: %s⛔️", email, "Terminated")
+ } else {
+ remark = fmt.Sprintf("%s: %s - %s", email, remainedTraffic, expiryTimeString)
+ }
- remark := fmt.Sprintf("%s: %s- %s", email, remainedTraffic, expiryTimeString)
obj := map[string]interface{}{
"v": "2",
"ps": remark,
@@ -457,8 +464,14 @@ func (s *SubService) genVlessLink(inbound *model.Inbound, email string, expiryTi
remainedTraffic := s.getRemainedTraffic(email)
expiryTimeString := getExpiryTime(expiryTime)
+ remark := ""
+ isTerminated := strings.Contains(expiryTimeString, "Terminated") || strings.Contains(remainedTraffic, "Terminated")
- remark := fmt.Sprintf("%s: %s- %s", email, remainedTraffic, expiryTimeString)
+ if isTerminated {
+ remark = fmt.Sprintf("%s: %s⛔️", email, "Terminated")
+ } else {
+ remark = fmt.Sprintf("%s: %s - %s", email, remainedTraffic, expiryTimeString)
+ }
if len(domains) > 0 {
links := ""
@@ -669,8 +682,14 @@ func (s *SubService) genTrojanLink(inbound *model.Inbound, email string, expiryT
remainedTraffic := s.getRemainedTraffic(email)
expiryTimeString := getExpiryTime(expiryTime)
+ remark := ""
+ isTerminated := strings.Contains(expiryTimeString, "Terminated") || strings.Contains(remainedTraffic, "Terminated")
- remark := fmt.Sprintf("%s: %s- %s", email, remainedTraffic, expiryTimeString)
+ if isTerminated {
+ remark = fmt.Sprintf("%s: %s⛔️", email, "Terminated")
+ } else {
+ remark = fmt.Sprintf("%s: %s - %s", email, remainedTraffic, expiryTimeString)
+ }
if len(domains) > 0 {
links := ""
@@ -772,8 +791,15 @@ func (s *SubService) genShadowsocksLink(inbound *model.Inbound, email string, ex
remainedTraffic := s.getRemainedTraffic(email)
expiryTimeString := getExpiryTime(expiryTime)
+ remark := ""
+ isTerminated := strings.Contains(expiryTimeString, "Terminated") || strings.Contains(remainedTraffic, "Terminated")
- remark := fmt.Sprintf("%s: %s- %s", clients[clientIndex].Email, remainedTraffic, expiryTimeString)
+ if isTerminated {
+ remark = fmt.Sprintf("%s: %s⛔️", clients[clientIndex].Email, "Terminated")
+ } else {
+ remark = fmt.Sprintf("%s: %s - %s", clients[clientIndex].Email, remainedTraffic, expiryTimeString)
+ }
+
url.Fragment = remark
return url.String()
}
@@ -825,6 +851,7 @@ func getExpiryTime(expiryTime int64) string {
expiryString := ""
timeDifference := expiryTime/1000 - now
+ isTerminated := timeDifference/3600 <= 0
if expiryTime == 0 {
expiryString = "♾ ⏳"
@@ -832,6 +859,8 @@ func getExpiryTime(expiryTime int64) string {
expiryString = fmt.Sprintf("%d %s⏳", timeDifference/86400, "Days")
} else if expiryTime < 0 {
expiryString = fmt.Sprintf("%d %s⏳", expiryTime/-86400000, "Days")
+ } else if isTerminated {
+ expiryString = fmt.Sprintf("%s⛔️", "Terminated")
} else {
expiryString = fmt.Sprintf("%d %s⏳", timeDifference/3600, "Hours")
}
@@ -846,8 +875,12 @@ func (s *SubService) getRemainedTraffic(email string) string {
}
remainedTraffic := ""
+ isTerminated := traffic.Total-(traffic.Up+traffic.Down) < 0
+
if traffic.Total == 0 {
remainedTraffic = "♾ 📊"
+ } else if isTerminated {
+ remainedTraffic = fmt.Sprintf("%s⛔️", "Terminated")
} else {
remainedTraffic = fmt.Sprintf("%s%s", common.FormatTraffic(traffic.Total-(traffic.Up+traffic.Down)), "📊")
}