123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- 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.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 isWireguard() {
- return this.protocol === Protocols.WIREGUARD;
- }
- 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;
- }
- }
- genInboundLinks(remarkModel) {
- const inbound = this.toInbound();
- return inbound.genInboundLinks(this.remark, remarkModel);
- }
- }
|