Add possibility to remove client email from sub (#4297)

This commit is contained in:
Vladislav Kasperov
2026-05-13 20:04:17 +03:00
committed by GitHub
parent 5543466fcc
commit 67b098dfd3
18 changed files with 49 additions and 1 deletions
+1
View File
@@ -57,6 +57,7 @@ export class AllSetting {
this.subUpdates = 12;
this.subEncrypt = true;
this.subShowInfo = true;
this.subEmailInRemark = true;
this.subURI = "";
this.subJsonURI = "";
this.subClashURI = "";
@@ -112,6 +112,14 @@ function normalizeSubPath() {
</template>
</SettingListItem>
<SettingListItem paddings="small">
<template #title>{{ t('pages.settings.subEmailInRemark') }}</template>
<template #description>{{ t('pages.settings.subEmailInRemarkDesc') }}</template>
<template #control>
<a-switch v-model:checked="allSetting.subEmailInRemark" />
</template>
</SettingListItem>
<a-divider>{{ t('pages.settings.subTitle') }}</a-divider>
<SettingListItem paddings="small">
+8 -1
View File
@@ -28,6 +28,7 @@ type SubService struct {
showInfo bool
remarkModel string
datepicker string
emailInRemark bool
inboundService service.InboundService
settingService service.SettingService
// nodesByID is populated per request from the Node table so
@@ -76,6 +77,12 @@ func (s *SubService) GetSubs(subId string, host string) ([]string, int64, xray.C
if err != nil {
s.datepicker = "gregorian"
}
s.emailInRemark, err = s.settingService.GetSubEmailInRemark()
if err != nil {
s.emailInRemark = true
}
seenEmails := make(map[string]struct{})
for _, inbound := range inbounds {
clients, err := s.inboundService.GetClients(inbound)
@@ -886,7 +893,7 @@ func (s *SubService) genRemark(inbound *model.Inbound, email string, extra strin
'e': "",
'o': "",
}
if len(email) > 0 {
if len(email) > 0 && s.emailInRemark {
orders['e'] = email
}
if len(inbound.Remark) > 0 {
+1
View File
@@ -75,6 +75,7 @@ type AllSetting struct {
RestartXrayOnClientDisable bool `json:"restartXrayOnClientDisable" form:"restartXrayOnClientDisable"` // Restart Xray when clients are auto-disabled by expiry/traffic limit
SubEncrypt bool `json:"subEncrypt" form:"subEncrypt"` // Encrypt subscription responses
SubShowInfo bool `json:"subShowInfo" form:"subShowInfo"` // Show client information in subscriptions
SubEmailInRemark bool `json:"subEmailInRemark" form:"subEmailInRemark"` // Include email in subscription remark/name
SubURI string `json:"subURI" form:"subURI"` // Subscription server URI
SubJsonPath string `json:"subJsonPath" form:"subJsonPath"` // Path for JSON subscription endpoint
SubJsonURI string `json:"subJsonURI" form:"subJsonURI"` // JSON subscription server URI
+5
View File
@@ -70,6 +70,7 @@ var defaultValueMap = map[string]string{
"subUpdates": "12",
"subEncrypt": "true",
"subShowInfo": "true",
"subEmailInRemark": "true",
"subURI": "",
"subJsonPath": "/json/",
"subJsonURI": "",
@@ -592,6 +593,10 @@ func (s *SettingService) GetSubShowInfo() (bool, error) {
return s.getBool("subShowInfo")
}
func (s *SettingService) GetSubEmailInRemark() (bool, error) {
return s.getBool("subEmailInRemark")
}
func (s *SettingService) GetPageSize() (int, error) {
return s.getInt("pageSize")
}
+2
View File
@@ -547,6 +547,8 @@
"subEncryptDesc": "المحتوى اللي هيترجع من خدمة الاشتراك هيكون مشفر بـ Base64.",
"subShowInfo": "اظهر معلومات الاستخدام",
"subShowInfoDesc": "هيظهر الترافيك المتبقي والتاريخ في تطبيقات العملاء.",
"subEmailInRemark": "تضمين البريد الإلكتروني في الاسم",
"subEmailInRemarkDesc": "تضمين بريد العميل الإلكتروني في اسم ملف تعريف الاشتراك.",
"subURI": "مسار البروكسي العكسي",
"subURIDesc": "مسار URI لرابط الاشتراك عشان تستخدمه ورا البروكسي.",
"externalTrafficInformEnable": "تنبيه الترافيك الخارجي",
+2
View File
@@ -547,6 +547,8 @@
"subEncryptDesc": "The returned content of subscription service will be Base64 encoded.",
"subShowInfo": "Show Usage Info",
"subShowInfoDesc": "The remaining traffic and date will be displayed in the client apps.",
"subEmailInRemark": "Include Email in Name",
"subEmailInRemarkDesc": "Include the client email in the subscription profile name.",
"subURI": "Reverse Proxy URI",
"subURIDesc": "The URI path of the subscription URL for use behind proxies.",
"externalTrafficInformEnable": "External Traffic Inform",
+2
View File
@@ -547,6 +547,8 @@
"subEncryptDesc": "Encriptar las configuraciones devueltas en la suscripción.",
"subShowInfo": "Mostrar información de uso",
"subShowInfoDesc": "Mostrar tráfico restante y fecha después del nombre de configuración.",
"subEmailInRemark": "Incluir Email en el nombre",
"subEmailInRemarkDesc": "Incluir el correo del cliente en el nombre del perfil de suscripción.",
"subURI": "URI de proxy inverso",
"externalTrafficInformEnable": "Informe de tráfico externo",
"externalTrafficInformEnableDesc": "Informar a la API externa sobre cada actualización de tráfico.",
+2
View File
@@ -547,6 +547,8 @@
"subEncryptDesc": "کدگذاری خواهدشد Base64 محتوای برگشتی سرویس سابسکریپشن برپایه",
"subShowInfo": "نمایش اطلاعات مصرف",
"subShowInfoDesc": "ترافیک و زمان باقی‌مانده را در برنامه‌های کاربری نمایش می‌دهد",
"subEmailInRemark": "گنجاندن ایمیل در نام",
"subEmailInRemarkDesc": "ایمیل کاربر در نام پروفایل اشتراک گنجانده می‌شود.",
"subURI": "پروکسی معکوس URI مسیر",
"subURIDesc": "سابسکریپشن را برای استفاده در پشت پراکسی‌ها تغییر می‌دهد URI مسیر",
"externalTrafficInformEnable": "اطلاع رسانی خارجی مصرف ترافیک",
+2
View File
@@ -547,6 +547,8 @@
"subEncryptDesc": "Konten yang dikembalikan dari layanan langganan akan dienkripsi Base64.",
"subShowInfo": "Tampilkan Info Penggunaan",
"subShowInfoDesc": "Sisa traffic dan tanggal akan ditampilkan di aplikasi klien.",
"subEmailInRemark": "Sertakan Email dalam Nama",
"subEmailInRemarkDesc": "Sertakan email klien dalam nama profil langganan.",
"subURI": "URI Proxy Terbalik",
"subURIDesc": "Path URI dari URL langganan untuk digunakan di belakang proxy.",
"externalTrafficInformEnable": "Informasikan API eksternal pada setiap pembaruan lalu lintas.",
+2
View File
@@ -547,6 +547,8 @@
"subEncryptDesc": "サブスクリプションサービスが返す内容をBase64エンコードする",
"subShowInfo": "利用情報を表示",
"subShowInfoDesc": "クライアントアプリで残りのトラフィックと日付情報を表示する",
"subEmailInRemark": "名前にメールを含める",
"subEmailInRemarkDesc": "サブスクリプションプロファイル名にクライアントのメールアドレスを含めます。",
"subURI": "リバースプロキシURI",
"subURIDesc": "プロキシ後ろのサブスクリプションURLのURIパスに使用する",
"externalTrafficInformEnable": "外部トラフィック情報",
+2
View File
@@ -547,6 +547,8 @@
"subEncryptDesc": "O conteúdo retornado pelo serviço de assinatura será codificado em Base64.",
"subShowInfo": "Mostrar Informações de Uso",
"subShowInfoDesc": "O tráfego restante e a data serão exibidos nos aplicativos de cliente.",
"subEmailInRemark": "Incluir Email no nome",
"subEmailInRemarkDesc": "Incluir o email do cliente no nome do perfil de assinatura.",
"subURI": "URI de Proxy Reverso",
"subURIDesc": "O caminho URI da URL de assinatura para uso por trás de proxies.",
"externalTrafficInformEnable": "Informações de tráfego externo",
+2
View File
@@ -547,6 +547,8 @@
"subEncryptDesc": "Шифровать возвращенные конфиги в подписке",
"subShowInfo": "Показать информацию об использовании",
"subShowInfoDesc": "Отображать остаток трафика и дату окончания после имени конфигурации",
"subEmailInRemark": "Включать Email в название",
"subEmailInRemarkDesc": "Включать email клиента в название профиля подписки.",
"subURI": "URI обратного прокси",
"subURIDesc": "Изменить базовый URI URL-адреса подписки для использования за прокси-серверами",
"externalTrafficInformEnable": "Информация о внешнем трафике",
+2
View File
@@ -547,6 +547,8 @@
"subEncryptDesc": "Abonelik hizmetinin döndürülen içeriği Base64 ile şifrelenir.",
"subShowInfo": "Kullanım Bilgisini Göster",
"subShowInfoDesc": "Kalan trafik ve tarih müşteri uygulamalarında görüntülenir.",
"subEmailInRemark": "Ada Email Ekle",
"subEmailInRemarkDesc": "Abonelik profil adına istemcinin e-postasını dahil edin.",
"subURI": "Ters Proxy URI",
"subURIDesc": "Proxy arkasında kullanılacak abonelik URL'sinin URI yolu.",
"externalTrafficInformEnable": "Harici Trafik Bilgisi",
+2
View File
@@ -547,6 +547,8 @@
"subEncryptDesc": "Повернений вміст послуги підписки матиме кодування Base64.",
"subShowInfo": "Показати інформацію про використання",
"subShowInfoDesc": "Залишок трафіку та дата відображатимуться в клієнтських програмах.",
"subEmailInRemark": "Включати Email до назви",
"subEmailInRemarkDesc": "Включати email клієнта до назви профілю підписки.",
"subURI": "URI зворотного проксі",
"subURIDesc": "URI до URL-адреси підписки для використання за проксі.",
"externalTrafficInformEnable": "Інформація про зовнішній трафік",
+2
View File
@@ -547,6 +547,8 @@
"subEncryptDesc": "Mã hóa các cấu hình được trả về trong gói đăng ký",
"subShowInfo": "Hiển thị thông tin sử dụng",
"subShowInfoDesc": "Hiển thị lưu lượng truy cập còn lại và ngày sau tên cấu hình",
"subEmailInRemark": "Thêm Email vào tên",
"subEmailInRemarkDesc": "Thêm email của client vào tên hồ sơ đăng ký.",
"subURI": "URI proxy trung gian",
"subURIDesc": "Thay đổi URI cơ sở của URL gói đăng ký để sử dụng cho proxy trung gian",
"externalTrafficInformEnable": "Thông báo giao thông bên ngoài",
+2
View File
@@ -547,6 +547,8 @@
"subEncryptDesc": "订阅服务返回的内容将采用 Base64 编码",
"subShowInfo": "显示使用信息",
"subShowInfoDesc": "客户端应用中将显示剩余流量和日期信息",
"subEmailInRemark": "在名称中包含邮箱",
"subEmailInRemarkDesc": "在订阅配置名称中包含客户端邮箱。",
"subURI": "反向代理 URI",
"subURIDesc": "用于代理后面的订阅 URL 的 URI 路径",
"externalTrafficInformEnable": "外部交通通知",
+2
View File
@@ -547,6 +547,8 @@
"subEncryptDesc": "訂閱服務返回的內容將採用 Base64 編碼",
"subShowInfo": "顯示使用資訊",
"subShowInfoDesc": "客戶端應用中將顯示剩餘流量和日期資訊",
"subEmailInRemark": "在名稱中包含郵箱",
"subEmailInRemarkDesc": "在訂閱配置名稱中包含客戶端郵箱。",
"subURI": "反向代理 URI",
"subURIDesc": "用於代理後面的訂閱 URL 的 URI 路徑",
"externalTrafficInformEnable": "外部交通通知",