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)), "📊") }