mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-08-31 07:27:13 +00:00
fix(sub): keep the client identity on every subscription link (#6098)
876d55f2 put EMAIL/USERNAME in the same first-link-only bucket as the usage
tokens, so a client attached to several inbounds got its email on whichever
inbound sorted first and bare inbound names on all the rest. With the shipped
default template ({{INBOUND}}-{{EMAIL}}|...) that makes every profile after
the first indistinguishable between clients — the point of the token.
The two are not alike: the usage block repeats identical numbers on every
link, while the identity is what tells one imported profile from another.
Restore identity on all body links and leave usage first-link-only.
Reported again in #6029 and #5659, which asked for the same revert.
This commit is contained in:
@@ -481,15 +481,6 @@ var connectionTokens = map[string]bool{
|
||||
|
||||
var displayRemoveTokens = mergeTokenSets(usageInfoTokens, connectionTokens)
|
||||
|
||||
// firstLinkOnlyBodyTokens are stripped from every subscription-body link after a
|
||||
// client's first one: the usage/info tokens plus the per-client EMAIL/USERNAME
|
||||
// identity. A client app needs the email once, so repeating it on every link of
|
||||
// the same subscription is noise — show it on the first link only, like traffic.
|
||||
var firstLinkOnlyBodyTokens = mergeTokenSets(usageInfoTokens, map[string]bool{
|
||||
"EMAIL": true,
|
||||
"USERNAME": true,
|
||||
})
|
||||
|
||||
func mergeTokenSets(sets ...map[string]bool) map[string]bool {
|
||||
out := make(map[string]bool)
|
||||
for _, set := range sets {
|
||||
@@ -560,7 +551,7 @@ func (s *SubService) effectiveTemplate(email string) string {
|
||||
s.usageShown = map[string]bool{}
|
||||
}
|
||||
if s.usageShown[email] {
|
||||
return filterRemarkTemplate(translated, firstLinkOnlyBodyTokens)
|
||||
return filterRemarkTemplate(translated, usageInfoTokens)
|
||||
}
|
||||
s.usageShown[email] = true
|
||||
return translated
|
||||
|
||||
Reference in New Issue
Block a user