mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-03-21 10:05:49 +00:00
alireza
This commit is contained in:
2
web/assets/ant-design-vue@1.7.2/antd.min.css
vendored
2
web/assets/ant-design-vue@1.7.2/antd.min.css
vendored
File diff suppressed because one or more lines are too long
@@ -151,6 +151,11 @@
|
||||
background-color: rgb(255, 127, 127);
|
||||
}
|
||||
|
||||
.ant-table-tbody>tr>td,
|
||||
.ant-table-thead>tr>th{
|
||||
padding:16px;
|
||||
}
|
||||
|
||||
.ant-card-dark {
|
||||
color: hsla(0,0%,100%,.65);
|
||||
background-color: #1a212a;
|
||||
@@ -163,7 +168,7 @@
|
||||
|
||||
.ant-card-dark .ant-table-thead th {
|
||||
color: hsla(0,0%,100%,.65);
|
||||
background-color: #1b202b;
|
||||
background-color: #161b22;
|
||||
}
|
||||
|
||||
.ant-card-dark .ant-table-tbody tr td,
|
||||
@@ -171,7 +176,10 @@
|
||||
color: hsla(0,0%,100%,.65);
|
||||
}
|
||||
|
||||
.ant-card-dark .ant-collapse-content {
|
||||
.ant-card-dark .ant-collapse-content,
|
||||
.ant-card-dark .ant-calendar,
|
||||
.ant-card-dark .ant-table-placeholder {
|
||||
color: hsla(0,0%,100%,.65);
|
||||
background-color: #1a212a;
|
||||
}
|
||||
|
||||
@@ -180,11 +188,23 @@
|
||||
.ant-card-dark .ant-form-item-label>label,
|
||||
.ant-card-dark .ant-form-item,
|
||||
.ant-card-dark .ant-divider-inner-text,
|
||||
.ant-card-dark .ant-collapse>.ant-collapse-item>.ant-collapse-header {
|
||||
.ant-card-dark .ant-modal-confirm-content,
|
||||
.ant-card-dark .ant-modal-confirm-title,
|
||||
.ant-card-dark .ant-progress-text,
|
||||
.ant-card-dark .ant-modal-close,
|
||||
.ant-card-dark i,
|
||||
.ant-card-dark .ant-select-dropdown-menu-item,
|
||||
.ant-card-dark .ant-calendar-month-select,
|
||||
.ant-card-dark .ant-calendar-year-select,
|
||||
.ant-card-dark .ant-calendar-date,
|
||||
.ant-card-dark .ant-collapse>.ant-collapse-item>.ant-collapse-header,
|
||||
.ant-card-dark .ant-empty-normal {
|
||||
color: hsla(0,0%,100%,.65);
|
||||
}
|
||||
|
||||
.ant-card-dark .ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td {
|
||||
.ant-card-dark .ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td,
|
||||
.ant-card-dark .ant-select-dropdown-menu-item:hover:not(.ant-select-dropdown-menu-item-disabled),
|
||||
.ant-card-dark .ant-calendar-date:hover {
|
||||
background-color: #004488;
|
||||
}
|
||||
|
||||
@@ -195,19 +215,55 @@
|
||||
|
||||
.ant-card-dark .ant-input,
|
||||
.ant-card-dark .ant-input-number,
|
||||
.ant-card-dark .ant-calendar-input,
|
||||
.ant-card-dark .ant-select-dropdown-menu-item-selected,
|
||||
.ant-card-dark .ant-select-selection {
|
||||
background-color: #023366;
|
||||
color: hsla(0,0%,100%,.65);
|
||||
background-color: #023366;
|
||||
}
|
||||
|
||||
.ant-card-dark .ant-collapse-item {
|
||||
background-color: #1b202b;
|
||||
color: hsla(0,0%,100%,.65);
|
||||
background-color: #161b22;
|
||||
}
|
||||
|
||||
.ant-card-dark .ant-modal-content,
|
||||
.ant-card-dark .ant-modal-body,
|
||||
.ant-card-dark .ant-modal-header {
|
||||
.ant-card-dark .ant-modal-header,
|
||||
.ant-card-dark .ant-calendar-selected-day .ant-calendar-date {
|
||||
color: hsla(0,0%,100%,.65);
|
||||
background-color: #242c3a;
|
||||
}
|
||||
|
||||
.client-table-header {
|
||||
background-color: #f0f2f5;
|
||||
}
|
||||
|
||||
.client-table-odd-row {
|
||||
background-color: #fafafa;
|
||||
}
|
||||
|
||||
.ant-card-dark .client-table-header {
|
||||
background-color: #023366;
|
||||
color: hsla(0,0%,100%,.65);
|
||||
}
|
||||
|
||||
.ant-card-dark .client-table-odd-row {
|
||||
color: hsla(0,0%,100%,.65);
|
||||
background-color: #242c3a;
|
||||
}
|
||||
|
||||
.ant-card-dark .ant-calendar-last-month-cell .ant-calendar-date,
|
||||
.ant-card-dark .ant-calendar-next-month-btn-day .ant-calendar-date {
|
||||
color: hsla(0,0%,100%,.30);
|
||||
}
|
||||
|
||||
.ant-drawer-dark {
|
||||
color: hsla(0,0%,100%,.65);
|
||||
}
|
||||
|
||||
.ant-drawer-dark .ant-drawer-wrapper-body,
|
||||
.ant-drawer-dark .drawer-handle {
|
||||
background-color: #1a212a;
|
||||
border: 1px solid hsla(0,0%,100%,.30);
|
||||
}
|
||||
@@ -4,7 +4,7 @@ supportLangs = [
|
||||
value : "en-US",
|
||||
icon : "🇺🇸"
|
||||
},
|
||||
{
|
||||
{
|
||||
name : "Farsi",
|
||||
value : "fa_IR",
|
||||
icon : "🇮🇷"
|
||||
|
||||
@@ -36,7 +36,8 @@ class DBInbound {
|
||||
this.remark = "";
|
||||
this.enable = true;
|
||||
this.expiryTime = 0;
|
||||
this.iplimit = 0;
|
||||
this.limitIp = 0;
|
||||
|
||||
this.listen = "";
|
||||
this.port = 0;
|
||||
this.protocol = "";
|
||||
@@ -109,10 +110,6 @@ class DBInbound {
|
||||
get isExpiry() {
|
||||
return this.expiryTime < new Date().getTime();
|
||||
}
|
||||
get isDBInboundEmpty() {
|
||||
const inbound = this.toInbound();
|
||||
return inbound.isInboundEmpty();
|
||||
}
|
||||
|
||||
toInbound() {
|
||||
let settings = {};
|
||||
@@ -159,6 +156,7 @@ class DBInbound {
|
||||
const inbound = this.toInbound();
|
||||
return inbound.genLink(this.address, this.remark, clientIndex);
|
||||
}
|
||||
|
||||
get genInboundLinks() {
|
||||
const inbound = this.toInbound();
|
||||
return inbound.genInboundLinks(this.address, this.remark);
|
||||
@@ -175,8 +173,12 @@ class AllSetting {
|
||||
this.webBasePath = "/";
|
||||
this.tgBotEnable = false;
|
||||
this.tgBotToken = "";
|
||||
this.tgBotChatId = 0;
|
||||
this.tgRunTime = "";
|
||||
this.tgBotChatId = "";
|
||||
this.tgRunTime = "@daily";
|
||||
this.tgBotBackup = false;
|
||||
this.tgExpireDiff = "";
|
||||
this.tgTrafficDiff = "";
|
||||
this.tgCpu = "";
|
||||
this.xrayTemplateConfig = "";
|
||||
|
||||
this.timeLocation = "Asia/Tehran";
|
||||
|
||||
@@ -794,18 +794,6 @@ class Inbound extends XrayCommonClass {
|
||||
return this.network === "http";
|
||||
}
|
||||
|
||||
isInboundEmpty() {
|
||||
if (this.protocol == Protocols.VMESS && this.settings.vmesses.length == 0) {
|
||||
return true;
|
||||
} else if (this.protocol == Protocols.VLESS && this.settings.vlesses.length == 0) {
|
||||
return true;
|
||||
} else if (this.protocol == Protocols.TROJAN && this.settings.trojans.length == 0) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// VMess & VLess
|
||||
get uuid() {
|
||||
switch (this.protocol) {
|
||||
@@ -1170,23 +1158,19 @@ class Inbound extends XrayCommonClass {
|
||||
else{
|
||||
params.set("sni", address);
|
||||
}
|
||||
if (type === "tcp") {
|
||||
if (type === "tcp" && this.settings.vlesses[clientIndex].flow.length > 0) {
|
||||
params.set("flow", this.settings.vlesses[clientIndex].flow);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (this.stream.security === 'xtls') {
|
||||
if (!ObjectUtil.isEmpty(this.stream.tls.server)) {
|
||||
address = this.stream.tls.server;
|
||||
if (this.stream.tls.settings[0]['serverName'] !== ''){
|
||||
params.set("sni", this.stream.tls.settings[0]['serverName']);
|
||||
}
|
||||
else{
|
||||
params.set("sni", address);
|
||||
}
|
||||
if (type === "tcp") {
|
||||
params.set("flow", this.settings.vlesses[clientIndex].flow);
|
||||
if (this.xtls) {
|
||||
if (this.stream.security === 'xtls') {
|
||||
if (!ObjectUtil.isEmpty(this.stream.tls.server)) {
|
||||
address = this.stream.tls.server;
|
||||
if (type === "tcp") {
|
||||
params.set("flow", this.settings.vlesses[clientIndex].flow);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1281,13 +1265,7 @@ class Inbound extends XrayCommonClass {
|
||||
if (this.stream.security === 'xtls') {
|
||||
if (!ObjectUtil.isEmpty(this.stream.tls.server)) {
|
||||
address = this.stream.tls.server;
|
||||
if (this.stream.tls.settings[0]['serverName'] !== ''){
|
||||
params.set("sni", this.stream.tls.settings[0]['serverName']);
|
||||
}
|
||||
else{
|
||||
params.set("sni", address);
|
||||
}
|
||||
if (type === "tcp") {
|
||||
if (type === "tcp" && this.settings.trojans[clientIndex].flow.length > 0) {
|
||||
params.set("flow", this.settings.trojans[clientIndex].flow);
|
||||
}
|
||||
}
|
||||
@@ -1306,18 +1284,18 @@ class Inbound extends XrayCommonClass {
|
||||
switch (this.protocol) {
|
||||
case Protocols.VMESS:
|
||||
if (this.settings.vmesses[clientIndex].email != ""){
|
||||
remark += '-' + this.settings.vmesses[clientIndex].email
|
||||
remark = this.settings.vmesses[clientIndex].email
|
||||
}
|
||||
return this.genVmessLink(address, remark, clientIndex);
|
||||
case Protocols.VLESS:
|
||||
if (this.settings.vlesses[clientIndex].email != ""){
|
||||
remark += '-' + this.settings.vlesses[clientIndex].email
|
||||
remark = this.settings.vlesses[clientIndex].email
|
||||
}
|
||||
return this.genVLESSLink(address, remark, clientIndex);
|
||||
case Protocols.SHADOWSOCKS: return this.genSSLink(address, remark);
|
||||
case Protocols.TROJAN:
|
||||
if (this.settings.trojans[clientIndex].email != ""){
|
||||
remark += '-' + this.settings.trojans[clientIndex].email
|
||||
remark = this.settings.trojans[clientIndex].email
|
||||
}
|
||||
return this.genTrojanLink(address, remark, clientIndex);
|
||||
default: return '';
|
||||
@@ -1652,7 +1630,7 @@ Inbound.TrojanSettings = class extends Inbound.Settings {
|
||||
}
|
||||
};
|
||||
Inbound.TrojanSettings.Trojan = class extends XrayCommonClass {
|
||||
constructor(password=RandomUtil.randomSeq(10), flow ='', email=RandomUtil.randomText(),limitIp=0, totalGB=0, expiryTime='') {
|
||||
constructor(password=RandomUtil.randomSeq(10), flow='', email=RandomUtil.randomText(),limitIp=0, totalGB=0, expiryTime='') {
|
||||
super();
|
||||
this.password = password;
|
||||
this.flow = flow;
|
||||
@@ -1779,11 +1757,12 @@ Inbound.ShadowsocksSettings = class extends Inbound.Settings {
|
||||
};
|
||||
|
||||
Inbound.DokodemoSettings = class extends Inbound.Settings {
|
||||
constructor(protocol, address, port, network='tcp,udp') {
|
||||
constructor(protocol, address, port, network='tcp,udp', followRedirect=false) {
|
||||
super(protocol);
|
||||
this.address = address;
|
||||
this.port = port;
|
||||
this.network = network;
|
||||
this.followRedirect = followRedirect;
|
||||
}
|
||||
|
||||
static fromJson(json={}) {
|
||||
@@ -1792,6 +1771,7 @@ Inbound.DokodemoSettings = class extends Inbound.Settings {
|
||||
json.address,
|
||||
json.port,
|
||||
json.network,
|
||||
json.followRedirect,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1800,6 +1780,7 @@ Inbound.DokodemoSettings = class extends Inbound.Settings {
|
||||
address: this.address,
|
||||
port: this.port,
|
||||
network: this.network,
|
||||
followRedirect: this.followRedirect,
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -136,7 +136,7 @@ class RandomUtil {
|
||||
return (c === 'x' ? r : (r & 0x7 | 0x8)).toString(16);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
static randomText() {
|
||||
var chars = 'abcdefghijklmnopqrstuvwxyz1234567890';
|
||||
var string = '';
|
||||
|
||||
Reference in New Issue
Block a user