| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 | class User {    constructor() {        this.username = "";        this.password = "";        this.LoginSecret = "";    }}class Msg {    constructor(success, msg, obj) {        this.success = false;        this.msg = "";        this.obj = null;        if (success != null) {            this.success = success;        }        if (msg != null) {            this.msg = msg;        }        if (obj != null) {            this.obj = obj;        }    }}class DBInbound {    constructor(data) {        this.id = 0;        this.userId = 0;        this.up = 0;        this.down = 0;        this.total = 0;        this.remark = "";        this.enable = true;        this.expiryTime = 0;        this.limitIp = 0;        this.listen = "";        this.port = 0;        this.protocol = "";        this.settings = "";        this.streamSettings = "";        this.tag = "";        this.sniffing = "";        this.clientStats = ""        if (data == null) {            return;        }        ObjectUtil.cloneProps(this, data);    }    get totalGB() {        return toFixed(this.total / ONE_GB, 2);    }    set totalGB(gb) {        this.total = toFixed(gb * ONE_GB, 0);    }    get isVMess() {        return this.protocol === Protocols.VMESS;    }    get isVLess() {        return this.protocol === Protocols.VLESS;    }    get isTrojan() {        return this.protocol === Protocols.TROJAN;    }    get isSS() {        return this.protocol === Protocols.SHADOWSOCKS;    }    get isSocks() {        return this.protocol === Protocols.SOCKS;    }    get isHTTP() {        return this.protocol === Protocols.HTTP;    }    get address() {        let address = location.hostname;        if (!ObjectUtil.isEmpty(this.listen) && this.listen !== "0.0.0.0") {            address = this.listen;        }        return address;    }    get _expiryTime() {        if (this.expiryTime === 0) {            return null;        }        return moment(this.expiryTime);    }    set _expiryTime(t) {        if (t == null) {            this.expiryTime = 0;        } else {            this.expiryTime = t.valueOf();        }    }    get isExpiry() {        return this.expiryTime < new Date().getTime();    }    toInbound() {        let settings = {};        if (!ObjectUtil.isEmpty(this.settings)) {            settings = JSON.parse(this.settings);        }        let streamSettings = {};        if (!ObjectUtil.isEmpty(this.streamSettings)) {            streamSettings = JSON.parse(this.streamSettings);        }        let sniffing = {};        if (!ObjectUtil.isEmpty(this.sniffing)) {            sniffing = JSON.parse(this.sniffing);        }        const config = {            port: this.port,            listen: this.listen,            protocol: this.protocol,            settings: settings,            streamSettings: streamSettings,            tag: this.tag,            sniffing: sniffing,            clientStats: this.clientStats,        };        return Inbound.fromJson(config);    }    isMultiUser() {        switch (this.protocol) {            case Protocols.VMESS:            case Protocols.VLESS:            case Protocols.TROJAN:                return true;            case Protocols.SHADOWSOCKS:                return this.toInbound().isSSMultiUser;            default:                return false;        }    }    hasLink() {        switch (this.protocol) {            case Protocols.VMESS:            case Protocols.VLESS:            case Protocols.TROJAN:            case Protocols.SHADOWSOCKS:                return true;            default:                return false;        }    }    genLink(address=this.address, remark=this.remark, clientIndex=0) {        const inbound = this.toInbound();        return inbound.genLink(address, remark, clientIndex);    }    	get genInboundLinks() {        const inbound = this.toInbound();        return inbound.genInboundLinks(this.address, this.remark);    }}class AllSetting {    constructor(data) {        this.webListen = "";        this.webDomain = "";        this.webPort = 2053;        this.webCertFile = "";        this.webKeyFile = "";        this.webBasePath = "/";        this.sessionMaxAge = "";        this.expireDiff = "";        this.trafficDiff = "";        this.tgBotEnable = false;        this.tgBotToken = "";        this.tgBotChatId = "";        this.tgRunTime = "@daily";        this.tgBotBackup = false;        this.tgBotLoginNotify = true;        this.tgCpu = "";        this.tgLang = "en-US";        this.xrayTemplateConfig = "";        this.secretEnable = false;        this.subEnable = false;        this.subListen = "";        this.subPort = "2096";        this.subPath = "/sub/";        this.subDomain = "";        this.subCertFile = "";        this.subKeyFile = "";        this.subUpdates = 0;        this.subEncrypt = true;        this.subShowInfo = true;        this.timeLocation = "Asia/Tehran";        if (data == null) {            return        }        ObjectUtil.cloneProps(this, data);    }    equals(other) {        return ObjectUtil.equals(this, other);    }}
 |