Add files via upload

This commit is contained in:
quydang 2023-08-30 07:32:19 +07:00 committed by GitHub
parent 6cfbcfab9a
commit aced4c41d0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 21 additions and 35 deletions

View file

@ -9,11 +9,6 @@ const supportLangs = [
value: 'fa-IR', value: 'fa-IR',
icon: '🇮🇷', icon: '🇮🇷',
}, },
{
name: '汉语',
value: 'zh-Hans',
icon: '🇨🇳',
},
{ {
name: 'Русский', name: 'Русский',
value: 'ru-RU', value: 'ru-RU',

View file

@ -421,6 +421,7 @@ class HttpStreamSettings extends XrayCommonClass {
} }
} }
class QuicStreamSettings extends XrayCommonClass { class QuicStreamSettings extends XrayCommonClass {
constructor(security=VmessMethods.NONE, constructor(security=VmessMethods.NONE,
key=RandomUtil.randomSeq(10), type='none') { key=RandomUtil.randomSeq(10), type='none') {
@ -482,7 +483,7 @@ class TlsStreamSettings extends XrayCommonClass {
cipherSuites = '', cipherSuites = '',
rejectUnknownSni = false, rejectUnknownSni = false,
certificates=[new TlsStreamSettings.Cert()], certificates=[new TlsStreamSettings.Cert()],
alpn=[ALPN_OPTION.HTTP1,ALPN_OPTION.H2], alpn=[ALPN_OPTION.H2,ALPN_OPTION.HTTP1],
settings=new TlsStreamSettings.Settings()) { settings=new TlsStreamSettings.Settings()) {
super(); super();
this.server = serverName; this.server = serverName;
@ -815,7 +816,6 @@ class SockoptStreamSettings extends XrayCommonClass {
this.tproxy = tproxy; this.tproxy = tproxy;
} }
static fromJson(json = {}) { static fromJson(json = {}) {
if (Object.keys(json).length === 0) return undefined;
return new SockoptStreamSettings( return new SockoptStreamSettings(
json.acceptProxyProtocol, json.acceptProxyProtocol,
json.tcpFastOpen, json.tcpFastOpen,
@ -823,7 +823,6 @@ class SockoptStreamSettings extends XrayCommonClass {
json.tproxy, json.tproxy,
); );
} }
toJson() { toJson() {
return { return {
acceptProxyProtocol: this.acceptProxyProtocol, acceptProxyProtocol: this.acceptProxyProtocol,

View file

@ -5,7 +5,7 @@
Sniffing Sniffing
<a-tooltip> <a-tooltip>
<template slot="title"> <template slot="title">
<span>{{ i18n "pages.inbounds.noRecommendKeepDefault" }}</span> <span >{{ i18n "pages.inbounds.noRecommendKeepDefault" }}</span>
</template> </template>
<a-icon type="question-circle" theme="filled"></a-icon> <a-icon type="question-circle" theme="filled"></a-icon>
</a-tooltip> </a-tooltip>

View file

@ -711,7 +711,7 @@
openEditClient(dbInboundId, client) { openEditClient(dbInboundId, client) {
dbInbound = this.dbInbounds.find(row => row.id === dbInboundId); dbInbound = this.dbInbounds.find(row => row.id === dbInboundId);
clients = this.getInboundClients(dbInbound); clients = this.getInboundClients(dbInbound);
index = this.findIndexOfClient(dbInbound.protocol, clients, client); index = this.findIndexOfClient(clients, client);
clientModal.show({ clientModal.show({
title: '{{ i18n "pages.client.edit"}}', title: '{{ i18n "pages.client.edit"}}',
okText: '{{ i18n "pages.client.submitEdit"}}', okText: '{{ i18n "pages.client.submitEdit"}}',
@ -725,13 +725,8 @@
isEdit: true isEdit: true
}); });
}, },
findIndexOfClient(protocol, clients, client) { findIndexOfClient(clients, client) {
switch (protocol) { return clients.findIndex(item => JSON.stringify(item) === JSON.stringify(client));
case Protocols.TROJAN:
case Protocols.SHADOWSOCKS:
return clients.findIndex(item => item.password === client.password && item.email === client.email);
default: return clients.findIndex(item => item.id === client.id && item.email === client.email);
}
}, },
async addClient(clients, dbInboundId) { async addClient(clients, dbInboundId) {
const data = { const data = {
@ -837,7 +832,8 @@
dbInbound = this.dbInbounds.find(row => row.id === dbInboundId); dbInbound = this.dbInbounds.find(row => row.id === dbInboundId);
inbound = dbInbound.toInbound(); inbound = dbInbound.toInbound();
clients = this.getClients(dbInbound.protocol, inbound.settings); clients = this.getClients(dbInbound.protocol, inbound.settings);
index = this.findIndexOfClient(dbInbound.protocol, clients, client); client.enable = !client.enable; // For finding correct index in findIndexOfClient() function
index = this.findIndexOfClient(clients, client);
clients[index].enable = !clients[index].enable; clients[index].enable = !clients[index].enable;
clientId = this.getClientId(dbInbound.protocol, clients[index]); clientId = this.getClientId(dbInbound.protocol, clients[index]);
await this.updateClient(clients[index], dbInboundId, clientId); await this.updateClient(clients[index], dbInboundId, clientId);

View file

@ -78,9 +78,8 @@
<a-row> <a-row>
<a-col :sm="24" :md="12"> <a-col :sm="24" :md="12">
<a-card hoverable :class="themeSwitcher.darkCardClass"> <a-card hoverable :class="themeSwitcher.darkCardClass">
3X: <a href="https://github.com/MHSanaei/3x-ui/releases" target="_blank"><a-tag color="green">v{{ .cur_ver }}</a-tag></a> X-UI: <a href="https://github.com/quydang04/x-ui/releases" target="_blank"><a-tag color="green">v{{ .cur_ver }}</a-tag></a>
Xray: <a-tag color="green" style="cursor: pointer;" @click="openSelectV2rayVersion">v[[ status.xray.version ]]</a-tag> Xray version: <a-tag color="green" style="cursor: pointer;" @click="openSelectV2rayVersion">v[[ status.xray.version ]]</a-tag>
<a href="https://t.me/panel3xui" target="_blank"><a-tag color="green">@panel3xui</a-tag></a>
</a-card> </a-card>
</a-col> </a-col>
<a-col :sm="24" :md="12"> <a-col :sm="24" :md="12">
@ -111,7 +110,7 @@
{{ i18n "pages.index.operationHours" }}: {{ i18n "pages.index.operationHours" }}:
Xray: Xray:
<a-tag color="green">[[ formatSecond(status.appStats.uptime) ]]</a-tag> <a-tag color="green">[[ formatSecond(status.appStats.uptime) ]]</a-tag>
OS: System:
<a-tag color="green">[[ formatSecond(status.uptime) ]]</a-tag> <a-tag color="green">[[ formatSecond(status.uptime) ]]</a-tag>
</a-card> </a-card>
</a-col> </a-col>
@ -609,4 +608,4 @@
</script> </script>
</body> </body>
</html> </html>

View file

@ -36,8 +36,8 @@
"status" = "Trạng thái" "status" = "Trạng thái"
"enabled" = "Đã kích hoạt" "enabled" = "Đã kích hoạt"
"disabled" = "Đã tắt" "disabled" = "Đã tắt"
"depleted" = "Đã cạn kiệt" "depleted" = "Depleted"
"depletingSoon" = "Sắp cạn kiệt" "depletingSoon" = "Deplete Soon"
"domainName" = "Tên miền" "domainName" = "Tên miền"
"monitor" = "Listening IP" "monitor" = "Listening IP"
"certificate" = "Chứng chỉ" "certificate" = "Chứng chỉ"
@ -127,6 +127,7 @@
"network" = "Mạng" "network" = "Mạng"
"destinationPort" = "Cổng đích" "destinationPort" = "Cổng đích"
"targetAddress" = "Địa chỉ mục tiêu" "targetAddress" = "Địa chỉ mục tiêu"
"disableInsecureEncryption" = "Vô hiệu hóa mã hóa không an toàn"
"monitorDesc" = "Mặc định để trống" "monitorDesc" = "Mặc định để trống"
"meansNoLimit" = "Nghĩa là không giới hạn" "meansNoLimit" = "Nghĩa là không giới hạn"
"totalFlow" = "Tổng lưu lượng" "totalFlow" = "Tổng lưu lượng"
@ -154,9 +155,9 @@
"resetAllClientTraffics" = "Đặt lại lưu lượng cho tất cả client" "resetAllClientTraffics" = "Đặt lại lưu lượng cho tất cả client"
"resetAllClientTrafficTitle" = "Đặt lại lưu lượng cho tất cả client" "resetAllClientTrafficTitle" = "Đặt lại lưu lượng cho tất cả client"
"resetAllClientTrafficContent" = "Bạn có chắc chắn muốn đặt lại tất cả lưu lượng cho tất cả client không?" "resetAllClientTrafficContent" = "Bạn có chắc chắn muốn đặt lại tất cả lưu lượng cho tất cả client không?"
"delDepletedClients" = "Xóa các client đã cạn kiệt" "delDepletedClients" = "Xóa các client đã Depleted"
"delDepletedClientsTitle" = "Xóa các client đã cạn kiệt" "delDepletedClientsTitle" = "Xóa các client đã Depleted"
"delDepletedClientsContent" = "Bạn có chắc chắn muốn xóa tất cả các client đã cạn kiệt không?" "delDepletedClientsContent" = "Bạn có chắc chắn muốn xóa tất cả các client đã Depleted không?"
"email" = "Email" "email" = "Email"
"emailDesc" = "Vui lòng cung cấp một địa chỉ email duy nhất." "emailDesc" = "Vui lòng cung cấp một địa chỉ email duy nhất."
"IPLimit" = "Giới hạn IP" "IPLimit" = "Giới hạn IP"
@ -251,7 +252,7 @@
"expireTimeDiff" = "Ngưỡng hết hạn cho thông báo" "expireTimeDiff" = "Ngưỡng hết hạn cho thông báo"
"expireTimeDiffDesc" = "Nhận thông báo về việc hết hạn tài khoản trước ngưỡng này (đơn vị: ngày)" "expireTimeDiffDesc" = "Nhận thông báo về việc hết hạn tài khoản trước ngưỡng này (đơn vị: ngày)"
"trafficDiff" = "Ngưỡng lưu lượng cho thông báo" "trafficDiff" = "Ngưỡng lưu lượng cho thông báo"
"trafficDiffDesc" = "Nhận thông báo về việc cạn kiệt lưu lượng trước khi đạt đến ngưỡng này (đơn vị: GB)" "trafficDiffDesc" = "Nhận thông báo về việc hết lưu lượng trước khi đạt đến ngưỡng này (đơn vị: GB)"
"tgNotifyCpu" = "Ngưỡng cảnh báo tỷ lệ CPU" "tgNotifyCpu" = "Ngưỡng cảnh báo tỷ lệ CPU"
"tgNotifyCpuDesc" = "Nhận thông báo nếu tỷ lệ sử dụng CPU vượt quá ngưỡng này (đơn vị: %)" "tgNotifyCpuDesc" = "Nhận thông báo nếu tỷ lệ sử dụng CPU vượt quá ngưỡng này (đơn vị: %)"
"timeZone" = "Múi giờ" "timeZone" = "Múi giờ"
@ -273,10 +274,6 @@
"subDomainDesc" = "Mặc định để trống để nghe tất cả các tên miền và IP" "subDomainDesc" = "Mặc định để trống để nghe tất cả các tên miền và IP"
"subUpdates" = "Khoảng thời gian cập nhật đăng ký" "subUpdates" = "Khoảng thời gian cập nhật đăng ký"
"subUpdatesDesc" = "Số giờ giữa các cập nhật trong ứng dụng khách" "subUpdatesDesc" = "Số giờ giữa các cập nhật trong ứng dụng khách"
"subEncrypt" = "Mã hóa cấu hình"
"subEncryptDesc" = "Mã hóa các cấu hình được trả về trong đă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"
[pages.settings.templates] [pages.settings.templates]
"title" = "Mẫu" "title" = "Mẫu"
@ -445,7 +442,7 @@
"exhaustedMsg" = "🚨 Sự cạn kiệt {{ .Type }}:\r\n" "exhaustedMsg" = "🚨 Sự cạn kiệt {{ .Type }}:\r\n"
"exhaustedCount" = "🚨 Số lần cạn kiệt {{ .Type }}:\r\n" "exhaustedCount" = "🚨 Số lần cạn kiệt {{ .Type }}:\r\n"
"disabled" = "🛑 Vô hiệu hóa: {{ .Disabled }}\r\n" "disabled" = "🛑 Vô hiệu hóa: {{ .Disabled }}\r\n"
"depleteSoon" = "🔜 Sắp cạn kiệt: {{ .Deplete }}\r\n \r\n" "depleteSoon" = "🔜 Deplete: {{ .Deplete }}\r\n \r\n"
"backupTime" = "🗄 Thời gian sao lưu: {{ .Time }}\r\n" "backupTime" = "🗄 Thời gian sao lưu: {{ .Time }}\r\n"
"refreshedOn" = "\r\n📋🔄 Đã cập nhật lần cuối vào: {{ .Time }}\r\n \r\n" "refreshedOn" = "\r\n📋🔄 Đã cập nhật lần cuối vào: {{ .Time }}\r\n \r\n"
@ -460,7 +457,7 @@
"dbBackup" = "Tải Backup DB" "dbBackup" = "Tải Backup DB"
"serverUsage" = "Sử Dụng Máy Chủ" "serverUsage" = "Sử Dụng Máy Chủ"
"getInbounds" = "Lấy Inbounds" "getInbounds" = "Lấy Inbounds"
"depleteSoon" = "Sắp Cạn Kiệt" "depleteSoon" = "Deplete Soon"
"clientUsage" = "Lấy Sử Dụng" "clientUsage" = "Lấy Sử Dụng"
"commands" = "Lệnh" "commands" = "Lệnh"
"refresh" = "🔄 Cập Nhật" "refresh" = "🔄 Cập Nhật"