2017-03-27 02:15:31 +08:00
|
|
|
class BaseProxy {
|
2020-12-03 20:20:48 +08:00
|
|
|
constructor(proxyStats) {
|
|
|
|
this.name = proxyStats.name
|
|
|
|
if (proxyStats.conf != null) {
|
|
|
|
this.encryption = proxyStats.conf.use_encryption
|
|
|
|
this.compression = proxyStats.conf.use_compression
|
|
|
|
} else {
|
|
|
|
this.encryption = ''
|
|
|
|
this.compression = ''
|
2017-03-27 02:15:31 +08:00
|
|
|
}
|
2020-12-03 20:20:48 +08:00
|
|
|
this.conns = proxyStats.cur_conns
|
|
|
|
this.traffic_in = proxyStats.today_traffic_in
|
|
|
|
this.traffic_out = proxyStats.today_traffic_out
|
|
|
|
this.last_start_time = proxyStats.last_start_time
|
|
|
|
this.last_close_time = proxyStats.last_close_time
|
|
|
|
this.status = proxyStats.status
|
|
|
|
}
|
2017-03-27 02:15:31 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
class TcpProxy extends BaseProxy {
|
2020-12-03 20:20:48 +08:00
|
|
|
constructor(proxyStats) {
|
|
|
|
super(proxyStats)
|
|
|
|
this.type = 'tcp'
|
|
|
|
if (proxyStats.conf != null) {
|
|
|
|
this.addr = ':' + proxyStats.conf.remote_port
|
|
|
|
this.port = proxyStats.conf.remote_port
|
|
|
|
} else {
|
|
|
|
this.addr = ''
|
|
|
|
this.port = ''
|
2017-03-27 02:15:31 +08:00
|
|
|
}
|
2020-12-03 20:20:48 +08:00
|
|
|
}
|
2017-03-27 02:15:31 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
class UdpProxy extends BaseProxy {
|
2020-12-03 20:20:48 +08:00
|
|
|
constructor(proxyStats) {
|
|
|
|
super(proxyStats)
|
|
|
|
this.type = 'udp'
|
|
|
|
if (proxyStats.conf != null) {
|
|
|
|
this.addr = ':' + proxyStats.conf.remote_port
|
|
|
|
this.port = proxyStats.conf.remote_port
|
|
|
|
} else {
|
|
|
|
this.addr = ''
|
|
|
|
this.port = ''
|
2017-03-27 02:15:31 +08:00
|
|
|
}
|
2020-12-03 20:20:48 +08:00
|
|
|
}
|
2017-03-27 02:15:31 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
class HttpProxy extends BaseProxy {
|
2020-12-03 20:20:48 +08:00
|
|
|
constructor(proxyStats, port, subdomain_host) {
|
|
|
|
super(proxyStats)
|
|
|
|
this.type = 'http'
|
|
|
|
this.port = port
|
|
|
|
if (proxyStats.conf != null) {
|
|
|
|
this.custom_domains = proxyStats.conf.custom_domains
|
|
|
|
this.host_header_rewrite = proxyStats.conf.host_header_rewrite
|
|
|
|
this.locations = proxyStats.conf.locations
|
|
|
|
if (proxyStats.conf.sub_domain !== '') {
|
|
|
|
this.subdomain = proxyStats.conf.sub_domain + '.' + subdomain_host
|
|
|
|
} else {
|
|
|
|
this.subdomain = ''
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
this.custom_domains = ''
|
|
|
|
this.host_header_rewrite = ''
|
|
|
|
this.subdomain = ''
|
|
|
|
this.locations = ''
|
2017-03-27 02:15:31 +08:00
|
|
|
}
|
2020-12-03 20:20:48 +08:00
|
|
|
}
|
2017-03-27 02:15:31 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
class HttpsProxy extends BaseProxy {
|
2020-12-03 20:20:48 +08:00
|
|
|
constructor(proxyStats, port, subdomain_host) {
|
|
|
|
super(proxyStats)
|
|
|
|
this.type = 'https'
|
|
|
|
this.port = port
|
|
|
|
if (proxyStats.conf != null) {
|
|
|
|
this.custom_domains = proxyStats.conf.custom_domains
|
|
|
|
if (proxyStats.conf.sub_domain !== '') {
|
|
|
|
this.subdomain = proxyStats.conf.sub_domain + '.' + subdomain_host
|
|
|
|
} else {
|
|
|
|
this.subdomain = ''
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
this.custom_domains = ''
|
|
|
|
this.subdomain = ''
|
2017-03-27 02:15:31 +08:00
|
|
|
}
|
2020-12-03 20:20:48 +08:00
|
|
|
}
|
2017-03-27 02:15:31 +08:00
|
|
|
}
|
|
|
|
|
2018-05-20 19:06:05 +08:00
|
|
|
class StcpProxy extends BaseProxy {
|
2020-12-03 20:20:48 +08:00
|
|
|
constructor(proxyStats) {
|
|
|
|
super(proxyStats)
|
|
|
|
this.type = 'stcp'
|
|
|
|
}
|
2018-05-20 19:06:05 +08:00
|
|
|
}
|
|
|
|
|
2020-12-03 20:20:48 +08:00
|
|
|
export { BaseProxy, TcpProxy, UdpProxy, HttpProxy, HttpsProxy, StcpProxy }
|